Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Side by Side Diff: base/third_party/dynamic_annotations/dynamic_annotations.h

Issue 6982022: Merge the dynamic annotations from ThreadSanitizer r3424. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | base/third_party/dynamic_annotations/dynamic_annotations.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Copyright (c) 2008-2009, Google Inc. 1 /* Copyright (c) 2011, Google Inc.
2 * All rights reserved. 2 * All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Neither the name of Google Inc. nor the names of its 10 * * Neither the name of Google Inc. nor the names of its
11 * contributors may be used to endorse or promote products derived from 11 * contributors may be used to endorse or promote products derived from
12 * this software without specific prior written permission. 12 * this software without specific prior written permission.
13 * 13 *
14 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 14 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
15 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 15 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
16 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 16 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
17 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 17 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
18 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 18 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
19 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 19 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
20 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 *
26 * ---
27 * Author: Kostya Serebryany
28 */ 25 */
29 26
30 /* This file defines dynamic annotations for use with dynamic analysis 27 /* This file defines dynamic annotations for use with dynamic analysis
31 tool such as valgrind, PIN, etc. 28 tool such as valgrind, PIN, etc.
32 29
33 Dynamic annotation is a source code annotation that affects 30 Dynamic annotation is a source code annotation that affects
34 the generated code (that is, the annotation is not a comment). 31 the generated code (that is, the annotation is not a comment).
35 Each such annotation is attached to a particular 32 Each such annotation is attached to a particular
36 instruction and/or to a particular object (address) in the program. 33 instruction and/or to a particular object (address) in the program.
37 34
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 "cv". */ 135 "cv". */
139 #define ANNOTATE_CONDVAR_SIGNAL(cv) \ 136 #define ANNOTATE_CONDVAR_SIGNAL(cv) \
140 DYNAMIC_ANNOTATIONS_NAME(AnnotateCondVarSignal)(__FILE__, __LINE__, cv) 137 DYNAMIC_ANNOTATIONS_NAME(AnnotateCondVarSignal)(__FILE__, __LINE__, cv)
141 138
142 /* Report that we are about to signal_all on the condition variable at address 139 /* Report that we are about to signal_all on the condition variable at address
143 "cv". */ 140 "cv". */
144 #define ANNOTATE_CONDVAR_SIGNAL_ALL(cv) \ 141 #define ANNOTATE_CONDVAR_SIGNAL_ALL(cv) \
145 DYNAMIC_ANNOTATIONS_NAME(AnnotateCondVarSignalAll)(__FILE__, __LINE__, cv) 142 DYNAMIC_ANNOTATIONS_NAME(AnnotateCondVarSignalAll)(__FILE__, __LINE__, cv)
146 143
147 /* Annotations for user-defined synchronization mechanisms. */ 144 /* Annotations for user-defined synchronization mechanisms. */
148 #define ANNOTATE_HAPPENS_BEFORE(obj) ANNOTATE_CONDVAR_SIGNAL(obj) 145 #define ANNOTATE_HAPPENS_BEFORE(obj) \
149 #define ANNOTATE_HAPPENS_AFTER(obj) ANNOTATE_CONDVAR_WAIT(obj) 146 DYNAMIC_ANNOTATIONS_NAME(AnnotateHappensBefore)(__FILE__, __LINE__, obj)
147 #define ANNOTATE_HAPPENS_AFTER(obj) \
148 DYNAMIC_ANNOTATIONS_NAME(AnnotateHappensAfter)(__FILE__, __LINE__, obj)
150 149
151 /* DEPRECATED. Don't use it. */ 150 /* DEPRECATED. Don't use it. */
152 #define ANNOTATE_PUBLISH_MEMORY_RANGE(pointer, size) \ 151 #define ANNOTATE_PUBLISH_MEMORY_RANGE(pointer, size) \
153 DYNAMIC_ANNOTATIONS_NAME(AnnotatePublishMemoryRange)(__FILE__, __LINE__, \ 152 DYNAMIC_ANNOTATIONS_NAME(AnnotatePublishMemoryRange)(__FILE__, __LINE__, \
154 pointer, size) 153 pointer, size)
155 154
156 /* DEPRECATED. Don't use it. */ 155 /* DEPRECATED. Don't use it. */
157 #define ANNOTATE_UNPUBLISH_MEMORY_RANGE(pointer, size) \ 156 #define ANNOTATE_UNPUBLISH_MEMORY_RANGE(pointer, size) \
158 DYNAMIC_ANNOTATIONS_NAME(AnnotateUnpublishMemoryRange)(__FILE__, __LINE__, \ 157 DYNAMIC_ANNOTATIONS_NAME(AnnotateUnpublishMemoryRange)(__FILE__, __LINE__, \
159 pointer, size) 158 pointer, size)
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 const volatile void *barrier) DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK; 455 const volatile void *barrier) DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK;
457 void DYNAMIC_ANNOTATIONS_NAME(AnnotateCondVarWait)( 456 void DYNAMIC_ANNOTATIONS_NAME(AnnotateCondVarWait)(
458 const char *file, int line, const volatile void *cv, 457 const char *file, int line, const volatile void *cv,
459 const volatile void *lock) DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK; 458 const volatile void *lock) DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK;
460 void DYNAMIC_ANNOTATIONS_NAME(AnnotateCondVarSignal)( 459 void DYNAMIC_ANNOTATIONS_NAME(AnnotateCondVarSignal)(
461 const char *file, int line, 460 const char *file, int line,
462 const volatile void *cv) DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK; 461 const volatile void *cv) DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK;
463 void DYNAMIC_ANNOTATIONS_NAME(AnnotateCondVarSignalAll)( 462 void DYNAMIC_ANNOTATIONS_NAME(AnnotateCondVarSignalAll)(
464 const char *file, int line, 463 const char *file, int line,
465 const volatile void *cv) DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK; 464 const volatile void *cv) DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK;
465 void DYNAMIC_ANNOTATIONS_NAME(AnnotateHappensBefore)(
466 const char *file, int line,
467 const volatile void *obj) DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK;
468 void DYNAMIC_ANNOTATIONS_NAME(AnnotateHappensAfter)(
469 const char *file, int line,
470 const volatile void *obj) DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK;
466 void DYNAMIC_ANNOTATIONS_NAME(AnnotatePublishMemoryRange)( 471 void DYNAMIC_ANNOTATIONS_NAME(AnnotatePublishMemoryRange)(
467 const char *file, int line, 472 const char *file, int line,
468 const volatile void *address, long size) DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK; 473 const volatile void *address, long size) DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK;
469 void DYNAMIC_ANNOTATIONS_NAME(AnnotateUnpublishMemoryRange)( 474 void DYNAMIC_ANNOTATIONS_NAME(AnnotateUnpublishMemoryRange)(
470 const char *file, int line, 475 const char *file, int line,
471 const volatile void *address, long size) DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK; 476 const volatile void *address, long size) DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK;
472 void DYNAMIC_ANNOTATIONS_NAME(AnnotatePCQCreate)( 477 void DYNAMIC_ANNOTATIONS_NAME(AnnotatePCQCreate)(
473 const char *file, int line, 478 const char *file, int line,
474 const volatile void *pcq) DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK; 479 const volatile void *pcq) DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK;
475 void DYNAMIC_ANNOTATIONS_NAME(AnnotatePCQDestroy)( 480 void DYNAMIC_ANNOTATIONS_NAME(AnnotatePCQDestroy)(
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 static static_var ## _annotator the ## static_var ## _annotator;\ 586 static static_var ## _annotator the ## static_var ## _annotator;\
582 } 587 }
583 #else /* DYNAMIC_ANNOTATIONS_ENABLED == 0 */ 588 #else /* DYNAMIC_ANNOTATIONS_ENABLED == 0 */
584 589
585 #define ANNOTATE_UNPROTECTED_READ(x) (x) 590 #define ANNOTATE_UNPROTECTED_READ(x) (x)
586 #define ANNOTATE_BENIGN_RACE_STATIC(static_var, description) /* empty */ 591 #define ANNOTATE_BENIGN_RACE_STATIC(static_var, description) /* empty */
587 592
588 #endif /* DYNAMIC_ANNOTATIONS_ENABLED */ 593 #endif /* DYNAMIC_ANNOTATIONS_ENABLED */
589 594
590 #endif /* __DYNAMIC_ANNOTATIONS_H__ */ 595 #endif /* __DYNAMIC_ANNOTATIONS_H__ */
OLDNEW
« no previous file with comments | « no previous file | base/third_party/dynamic_annotations/dynamic_annotations.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698