From 028c96e26e17ac085fab03b5b02dafec8f9218cf Mon Sep 17 00:00:00 2001
From: Kostya Serebryany <kcc@google.com>
Date: Sat, 17 Sep 2016 05:03:05 +0000
Subject: [PATCH] [sanitizer-coverage] change trace-pc to use 8-byte guards

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@281809 91177308-0d34-0410-b5e6-96231b3b80d8
---
 docs/SanitizerCoverage.rst | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/docs/SanitizerCoverage.rst b/docs/SanitizerCoverage.rst
index 906150014f..a4693fe2c3 100644
--- a/docs/SanitizerCoverage.rst
+++ b/docs/SanitizerCoverage.rst
@@ -331,24 +331,23 @@ on every edge:
 
 .. code-block:: none
 
-   if (guard_variable != 0xff)
+   if (guard_variable >= 0)
      __sanitizer_cov_trace_pc_guard(&guard_variable)
 
-Every edge will have its own 1-byte `guard_variable`.
-All such guard variables will reside in a dedicated section
-(i.e. they essentially form an array).
-
-Similarly to `trace-pc,indirect-calls`, with `trace-pc-guards,indirect-calls`
-``__sanitizer_cov_trace_pc_indirect(void *callee)`` will be inserted on every indirect call.
+Every edge will have its own 8-byte `guard_variable`.
 
 The compler will also insert a module constructor that will call
 
 .. code-block:: c++
 
-   // The guard section is the address range [start, stop).
-   __sanitizer_cov_trace_pc_guard_init(void *start, void *stop);
+   // The guards are [start, stop).
+   // This function may be called multiple times with the same values of start/stop.
+   __sanitizer_cov_trace_pc_guard_init(uint64_t *start, uint64_t *stop);
+
+Similarly to `trace-pc,indirect-calls`, with `trace-pc-guards,indirect-calls`
+``__sanitizer_cov_trace_pc_indirect(void *callee)`` will be inserted on every indirect call.
 
-The functions `__sanitizer_cov_trace_pc_guard[_init]` should be defined by the user.
+The functions `__sanitizer_cov_trace_pc_*` should be defined by the user.
 
 Tracing data flow
 =================
-- 
2.40.0