From: Devin Coughlin Date: Mon, 6 Nov 2017 22:12:19 +0000 (+0000) Subject: [analyzer] Model correct dispatch_once() 'done' value in BodyFarm X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0eaba5f9b9a6e7b9dd674958a557b39bd8a67c22;p=clang [analyzer] Model correct dispatch_once() 'done' value in BodyFarm The analyzer's BodyFarm models dispatch_once() by comparing the passed-in predicate against a known 'done' value. If the predicate does not have that value, the model updates the predicate to have that value and executes the passed in block. Unfortunately, the current model uses the wrong 'done' value: 1 instead of ~0. This interferes with libdispatch's static inline function _dispatch_once(), which enables a fast path if the block has already been executed. That function uses __builtin_assume() to tell the compiler that the done flag is set to ~0 on exit. When r302880 added modeling of __builtin_assume(), this caused the analyzer to assume 1 == ~0. This in turn caused the analyzer to never explore any code after a call to dispatch_once(). This patch regains the missing coverage by updating BodyFarm to use the correct 'done' value. rdar://problem/34413048 Differential Revision: https://reviews.llvm.org/D39691 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317516 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Analysis/BodyFarm.cpp b/lib/Analysis/BodyFarm.cpp index 3e62ae5fe6..e5d3c5ce5b 100644 --- a/lib/Analysis/BodyFarm.cpp +++ b/lib/Analysis/BodyFarm.cpp @@ -96,8 +96,8 @@ public: /// Create a Return statement. ReturnStmt *makeReturn(const Expr *RetVal); - /// Create an integer literal. - IntegerLiteral *makeIntegerLiteral(uint64_t value); + /// Create an integer literal expression of the given type. + IntegerLiteral *makeIntegerLiteral(uint64_t Value, QualType Ty); /// Create a member expression. MemberExpr *makeMemberExpression(Expr *base, ValueDecl *MemberDecl, @@ -206,11 +206,9 @@ ReturnStmt *ASTMaker::makeReturn(const Expr *RetVal) { nullptr); } -IntegerLiteral *ASTMaker::makeIntegerLiteral(uint64_t value) { - return IntegerLiteral::Create(C, - llvm::APInt( - /*numBits=*/C.getTypeSize(C.IntTy), value), - /*QualType=*/C.IntTy, SourceLocation()); +IntegerLiteral *ASTMaker::makeIntegerLiteral(uint64_t Value, QualType Ty) { + llvm::APInt APValue = llvm::APInt(C.getTypeSize(Ty), Value); + return IntegerLiteral::Create(C, APValue, Ty, SourceLocation()); } MemberExpr *ASTMaker::makeMemberExpression(Expr *base, ValueDecl *MemberDecl, @@ -447,7 +445,8 @@ static Stmt *create_call_once(ASTContext &C, const FunctionDecl *D) { // Create assignment. BinaryOperator *FlagAssignment = M.makeAssignment( - Deref, M.makeIntegralCast(M.makeIntegerLiteral(1), DerefType), DerefType); + Deref, M.makeIntegralCast(M.makeIntegerLiteral(1, C.IntTy), DerefType), + DerefType); IfStmt *Out = new (C) IfStmt(C, SourceLocation(), @@ -486,8 +485,8 @@ static Stmt *create_dispatch_once(ASTContext &C, const FunctionDecl *D) { // sets it, and calls the block. Basically, an AST dump of: // // void dispatch_once(dispatch_once_t *predicate, dispatch_block_t block) { - // if (!*predicate) { - // *predicate = 1; + // if (*predicate != ~0l) { + // *predicate = ~0l; // block(); // } // } @@ -504,7 +503,9 @@ static Stmt *create_dispatch_once(ASTContext &C, const FunctionDecl *D) { /*SourceLocation=*/SourceLocation()); // (2) Create the assignment to the predicate. - IntegerLiteral *IL = M.makeIntegerLiteral(1); + Expr *DoneValue = + new (C) UnaryOperator(M.makeIntegerLiteral(0, C.LongTy), UO_Not, C.LongTy, + VK_RValue, OK_Ordinary, SourceLocation()); BinaryOperator *B = M.makeAssignment( @@ -512,7 +513,7 @@ static Stmt *create_dispatch_once(ASTContext &C, const FunctionDecl *D) { M.makeLvalueToRvalue( M.makeDeclRefExpr(Predicate), PredicateQPtrTy), PredicateTy), - M.makeIntegralCast(IL, PredicateTy), + M.makeIntegralCast(DoneValue, PredicateTy), PredicateTy); // (3) Create the compound statement. @@ -528,20 +529,14 @@ static Stmt *create_dispatch_once(ASTContext &C, const FunctionDecl *D) { PredicateQPtrTy), PredicateTy), PredicateTy); - - UnaryOperator *UO = new (C) UnaryOperator( - /* input=*/ LValToRval, - /* opc=*/ UO_LNot, - /* QualType=*/ C.IntTy, - /* ExprValueKind=*/ VK_RValue, - /* ExprObjectKind=*/ OK_Ordinary, SourceLocation()); - + + Expr *GuardCondition = M.makeComparison(LValToRval, DoneValue, BO_NE); // (5) Create the 'if' statement. IfStmt *If = new (C) IfStmt(C, SourceLocation(), /* IsConstexpr=*/ false, /* init=*/ nullptr, /* var=*/ nullptr, - /* cond=*/ UO, + /* cond=*/ GuardCondition, /* then=*/ CS); return If; } diff --git a/test/Analysis/unix-fns.c b/test/Analysis/unix-fns.c index 481f545e28..9126e1bb39 100644 --- a/test/Analysis/unix-fns.c +++ b/test/Analysis/unix-fns.c @@ -34,11 +34,40 @@ typedef union { struct dispatch_disk_s *_ddisk; } dispatch_object_t __attribute__((__transparent_union__)); typedef void (^dispatch_block_t)(void); -typedef long dispatch_once_t; typedef struct dispatch_queue_s *dispatch_queue_t; -void dispatch_once(dispatch_once_t *predicate, dispatch_block_t block); void dispatch_sync(dispatch_queue_t queue, dispatch_block_t block); +typedef long dispatch_once_t; + +extern +__attribute__((__nonnull__)) +__attribute__((__nothrow__)) +void dispatch_once(dispatch_once_t *predicate, + __attribute__((__noescape__)) dispatch_block_t block); + +// Inlined fast-path dispatch_once defers to the real dispatch_once +// on the slow path. +static +__inline__ +__attribute__((__always_inline__)) +__attribute__((__nonnull__)) +__attribute__((__nothrow__)) +void _dispatch_once(dispatch_once_t *predicate, + __attribute__((__noescape__)) dispatch_block_t block) +{ + if (__builtin_expect((*predicate), (~0l)) != ~0l) { + dispatch_once(predicate, block); + } else { + __asm__ __volatile__("" ::: "memory"); + } + __builtin_assume(*predicate == ~0l); +} + +// Macro so that user calls to dispatch_once() call the inlined fast-path +// variant. +#undef dispatch_once +#define dispatch_once _dispatch_once + #ifndef O_CREAT #define O_CREAT 0x0200 #define O_RDONLY 0x0000 @@ -181,16 +210,6 @@ void test_valloc_nowarn(size_t sz) { } } -// Test dispatch_once being a macro that wraps a call to _dispatch_once, which in turn -// calls the real dispatch_once. - -static inline void _dispatch_once(dispatch_once_t *predicate, dispatch_block_t block) -{ - dispatch_once(predicate, block); -} - -#define dispatch_once _dispatch_once - void test_dispatch_once_in_macro() { dispatch_once_t pred = 0; dispatch_once(&pred, ^(){}); // expected-warning {{Call to 'dispatch_once' uses the local variable 'pred' for the predicate value}} @@ -206,7 +225,7 @@ void test_dispatch_sync(dispatch_queue_t queue, int *q) { }); } -// Test inlining if dispatch_once. +// Test inlining of dispatch_once. void test_inline_dispatch_once() { static dispatch_once_t pred; int *p = 0; @@ -215,6 +234,17 @@ void test_inline_dispatch_once() { }); } +// Make sure code after call to dispatch once is reached. +void test_inline_dispatch_once_reachable() { + static dispatch_once_t pred; + __block int *p; + dispatch_once(&pred, ^(void) { + p = 0; + }); + + *p = 7; // expected-warning {{Dereference of null pointer (loaded from variable 'p')}} +} + // CHECK: diagnostics // CHECK-NEXT: // CHECK-NEXT: @@ -228,12 +258,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line51 +// CHECK-NEXT: line80 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line51 +// CHECK-NEXT: line80 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -241,12 +271,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line53 +// CHECK-NEXT: line82 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line53 +// CHECK-NEXT: line82 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -262,12 +292,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line53 +// CHECK-NEXT: line82 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line53 +// CHECK-NEXT: line82 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -275,12 +305,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line53 +// CHECK-NEXT: line82 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line53 +// CHECK-NEXT: line82 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -292,7 +322,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line53 +// CHECK-NEXT: line82 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -300,12 +330,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line53 +// CHECK-NEXT: line82 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line53 +// CHECK-NEXT: line82 // CHECK-NEXT: col9 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -325,12 +355,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line53 +// CHECK-NEXT: line82 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line53 +// CHECK-NEXT: line82 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -338,12 +368,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line56 +// CHECK-NEXT: line85 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line56 +// CHECK-NEXT: line85 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -359,12 +389,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line56 +// CHECK-NEXT: line85 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line56 +// CHECK-NEXT: line85 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -372,12 +402,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line56 +// CHECK-NEXT: line85 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line56 +// CHECK-NEXT: line85 // CHECK-NEXT: col11 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -389,7 +419,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line56 +// CHECK-NEXT: line85 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -397,12 +427,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line56 +// CHECK-NEXT: line85 // CHECK-NEXT: col19 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line56 +// CHECK-NEXT: line85 // CHECK-NEXT: col25 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -426,7 +456,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: issue_hash_function_offset6 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line56 +// CHECK-NEXT: line85 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -442,12 +472,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line62 +// CHECK-NEXT: line91 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line62 +// CHECK-NEXT: line91 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -455,12 +485,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line64 +// CHECK-NEXT: line93 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line64 +// CHECK-NEXT: line93 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -476,12 +506,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line64 +// CHECK-NEXT: line93 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line64 +// CHECK-NEXT: line93 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -489,12 +519,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line64 +// CHECK-NEXT: line93 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line64 +// CHECK-NEXT: line93 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -506,7 +536,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line64 +// CHECK-NEXT: line93 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -514,12 +544,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line64 +// CHECK-NEXT: line93 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line64 +// CHECK-NEXT: line93 // CHECK-NEXT: col9 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -539,12 +569,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line64 +// CHECK-NEXT: line93 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line64 +// CHECK-NEXT: line93 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -552,12 +582,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line67 +// CHECK-NEXT: line96 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line67 +// CHECK-NEXT: line96 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -573,12 +603,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line67 +// CHECK-NEXT: line96 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line67 +// CHECK-NEXT: line96 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -586,12 +616,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line67 +// CHECK-NEXT: line96 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line67 +// CHECK-NEXT: line96 // CHECK-NEXT: col13 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -603,7 +633,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line67 +// CHECK-NEXT: line96 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -611,12 +641,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line67 +// CHECK-NEXT: line96 // CHECK-NEXT: col44 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line67 +// CHECK-NEXT: line96 // CHECK-NEXT: col50 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -640,7 +670,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: issue_hash_function_offset6 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line67 +// CHECK-NEXT: line96 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -656,12 +686,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line73 +// CHECK-NEXT: line102 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line73 +// CHECK-NEXT: line102 // CHECK-NEXT: col17 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -669,12 +699,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line74 +// CHECK-NEXT: line103 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line74 +// CHECK-NEXT: line103 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -690,12 +720,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line74 +// CHECK-NEXT: line103 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line74 +// CHECK-NEXT: line103 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -703,12 +733,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line74 +// CHECK-NEXT: line103 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line74 +// CHECK-NEXT: line103 // CHECK-NEXT: col9 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -724,12 +754,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line74 +// CHECK-NEXT: line103 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line74 +// CHECK-NEXT: line103 // CHECK-NEXT: col9 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -737,12 +767,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line74 +// CHECK-NEXT: line103 // CHECK-NEXT: col52 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line74 +// CHECK-NEXT: line103 // CHECK-NEXT: col64 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -754,7 +784,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line74 +// CHECK-NEXT: line103 // CHECK-NEXT: col52 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -762,12 +792,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line74 +// CHECK-NEXT: line103 // CHECK-NEXT: col66 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line74 +// CHECK-NEXT: line103 // CHECK-NEXT: col72 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -791,7 +821,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: issue_hash_function_offset2 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line74 +// CHECK-NEXT: line103 // CHECK-NEXT: col52 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -807,12 +837,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line84 +// CHECK-NEXT: line113 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line84 +// CHECK-NEXT: line113 // CHECK-NEXT: col16 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -820,12 +850,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line85 +// CHECK-NEXT: line114 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line85 +// CHECK-NEXT: line114 // CHECK-NEXT: col14 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -837,7 +867,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line85 +// CHECK-NEXT: line114 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -845,12 +875,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line85 +// CHECK-NEXT: line114 // CHECK-NEXT: col16 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line85 +// CHECK-NEXT: line114 // CHECK-NEXT: col20 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -874,7 +904,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: issue_hash_function_offset2 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line85 +// CHECK-NEXT: line114 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -890,12 +920,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line94 +// CHECK-NEXT: line123 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line94 +// CHECK-NEXT: line123 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -903,12 +933,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line94 +// CHECK-NEXT: line123 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line94 +// CHECK-NEXT: line123 // CHECK-NEXT: col20 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -920,7 +950,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line94 +// CHECK-NEXT: line123 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -928,12 +958,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line94 +// CHECK-NEXT: line123 // CHECK-NEXT: col22 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line94 +// CHECK-NEXT: line123 // CHECK-NEXT: col22 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -957,7 +987,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: issue_hash_function_offset1 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line94 +// CHECK-NEXT: line123 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -973,12 +1003,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line106 +// CHECK-NEXT: line135 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line106 +// CHECK-NEXT: line135 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -986,12 +1016,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line106 +// CHECK-NEXT: line135 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line106 +// CHECK-NEXT: line135 // CHECK-NEXT: col20 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1003,7 +1033,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line106 +// CHECK-NEXT: line135 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1011,12 +1041,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line106 +// CHECK-NEXT: line135 // CHECK-NEXT: col22 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line106 +// CHECK-NEXT: line135 // CHECK-NEXT: col22 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1040,7 +1070,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: issue_hash_function_offset1 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line106 +// CHECK-NEXT: line135 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1056,12 +1086,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line112 +// CHECK-NEXT: line141 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line112 +// CHECK-NEXT: line141 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1069,12 +1099,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line112 +// CHECK-NEXT: line141 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line112 +// CHECK-NEXT: line141 // CHECK-NEXT: col20 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1086,7 +1116,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line112 +// CHECK-NEXT: line141 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1094,12 +1124,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line112 +// CHECK-NEXT: line141 // CHECK-NEXT: col26 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line112 +// CHECK-NEXT: line141 // CHECK-NEXT: col26 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1123,7 +1153,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: issue_hash_function_offset1 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line112 +// CHECK-NEXT: line141 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1139,12 +1169,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line124 +// CHECK-NEXT: line153 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line124 +// CHECK-NEXT: line153 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1152,12 +1182,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line124 +// CHECK-NEXT: line153 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line124 +// CHECK-NEXT: line153 // CHECK-NEXT: col21 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1169,7 +1199,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line124 +// CHECK-NEXT: line153 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1177,12 +1207,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line124 +// CHECK-NEXT: line153 // CHECK-NEXT: col28 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line124 +// CHECK-NEXT: line153 // CHECK-NEXT: col28 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1206,7 +1236,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: issue_hash_function_offset1 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line124 +// CHECK-NEXT: line153 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1222,12 +1252,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line130 +// CHECK-NEXT: line159 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line130 +// CHECK-NEXT: line159 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1235,12 +1265,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line130 +// CHECK-NEXT: line159 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line130 +// CHECK-NEXT: line159 // CHECK-NEXT: col22 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1252,7 +1282,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line130 +// CHECK-NEXT: line159 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1260,12 +1290,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line130 +// CHECK-NEXT: line159 // CHECK-NEXT: col29 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line130 +// CHECK-NEXT: line159 // CHECK-NEXT: col29 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1289,7 +1319,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: issue_hash_function_offset1 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line130 +// CHECK-NEXT: line159 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1305,12 +1335,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line148 +// CHECK-NEXT: line177 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line148 +// CHECK-NEXT: line177 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1318,12 +1348,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line148 +// CHECK-NEXT: line177 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line148 +// CHECK-NEXT: line177 // CHECK-NEXT: col20 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1335,7 +1365,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line148 +// CHECK-NEXT: line177 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1343,12 +1373,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line148 +// CHECK-NEXT: line177 // CHECK-NEXT: col22 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line148 +// CHECK-NEXT: line177 // CHECK-NEXT: col22 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1372,7 +1402,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: issue_hash_function_offset1 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line148 +// CHECK-NEXT: line177 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1388,12 +1418,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line160 +// CHECK-NEXT: line189 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line160 +// CHECK-NEXT: line189 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1401,12 +1431,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line160 +// CHECK-NEXT: line189 // CHECK-NEXT: col16 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line160 +// CHECK-NEXT: line189 // CHECK-NEXT: col31 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1418,7 +1448,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line160 +// CHECK-NEXT: line189 // CHECK-NEXT: col16 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1426,12 +1456,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line160 +// CHECK-NEXT: line189 // CHECK-NEXT: col33 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line160 +// CHECK-NEXT: line189 // CHECK-NEXT: col33 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1455,7 +1485,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: issue_hash_function_offset1 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line160 +// CHECK-NEXT: line189 // CHECK-NEXT: col16 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1471,12 +1501,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line172 +// CHECK-NEXT: line201 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line172 +// CHECK-NEXT: line201 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1484,12 +1514,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line172 +// CHECK-NEXT: line201 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line172 +// CHECK-NEXT: line201 // CHECK-NEXT: col20 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1501,7 +1531,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line172 +// CHECK-NEXT: line201 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1509,12 +1539,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line172 +// CHECK-NEXT: line201 // CHECK-NEXT: col22 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line172 +// CHECK-NEXT: line201 // CHECK-NEXT: col22 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1538,7 +1568,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: issue_hash_function_offset1 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line172 +// CHECK-NEXT: line201 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1554,12 +1584,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line195 +// CHECK-NEXT: line214 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line195 +// CHECK-NEXT: line214 // CHECK-NEXT: col17 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1567,12 +1597,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line196 +// CHECK-NEXT: line215 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line196 +// CHECK-NEXT: line215 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1584,7 +1614,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line196 +// CHECK-NEXT: line215 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1592,12 +1622,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line196 +// CHECK-NEXT: line215 // CHECK-NEXT: col17 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line196 +// CHECK-NEXT: line215 // CHECK-NEXT: col21 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1621,7 +1651,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: issue_hash_function_offset2 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line196 +// CHECK-NEXT: line215 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1633,7 +1663,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line201 +// CHECK-NEXT: line220 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1641,12 +1671,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line201 +// CHECK-NEXT: line220 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line201 +// CHECK-NEXT: line220 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1666,12 +1696,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line201 +// CHECK-NEXT: line220 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line201 +// CHECK-NEXT: line220 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1679,12 +1709,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line202 +// CHECK-NEXT: line221 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line202 +// CHECK-NEXT: line221 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1700,12 +1730,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line202 +// CHECK-NEXT: line221 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line202 +// CHECK-NEXT: line221 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1713,12 +1743,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line202 +// CHECK-NEXT: line221 // CHECK-NEXT: col24 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line202 +// CHECK-NEXT: line221 // CHECK-NEXT: col24 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1730,7 +1760,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line202 +// CHECK-NEXT: line221 // CHECK-NEXT: col24 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1738,12 +1768,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line202 +// CHECK-NEXT: line221 // CHECK-NEXT: col24 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line206 +// CHECK-NEXT: line225 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1759,7 +1789,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line202 +// CHECK-NEXT: line221 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1767,12 +1797,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line202 +// CHECK-NEXT: line221 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line206 +// CHECK-NEXT: line225 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1788,7 +1818,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line202 +// CHECK-NEXT: line221 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1796,12 +1826,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line202 +// CHECK-NEXT: line221 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line206 +// CHECK-NEXT: line225 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1817,7 +1847,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line202 +// CHECK-NEXT: line221 // CHECK-NEXT: col24 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1835,12 +1865,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line202 +// CHECK-NEXT: line221 // CHECK-NEXT: col24 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line202 +// CHECK-NEXT: line221 // CHECK-NEXT: col24 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1848,12 +1878,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line203 +// CHECK-NEXT: line222 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line203 +// CHECK-NEXT: line222 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1869,12 +1899,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line203 +// CHECK-NEXT: line222 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line203 +// CHECK-NEXT: line222 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1882,12 +1912,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line203 +// CHECK-NEXT: line222 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line203 +// CHECK-NEXT: line222 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1899,7 +1929,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line203 +// CHECK-NEXT: line222 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1907,12 +1937,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line203 +// CHECK-NEXT: line222 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line203 +// CHECK-NEXT: line222 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1932,12 +1962,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line203 +// CHECK-NEXT: line222 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line203 +// CHECK-NEXT: line222 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1945,12 +1975,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line204 +// CHECK-NEXT: line223 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line204 +// CHECK-NEXT: line223 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1966,12 +1996,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line204 +// CHECK-NEXT: line223 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line204 +// CHECK-NEXT: line223 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1979,12 +2009,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line204 +// CHECK-NEXT: line223 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line204 +// CHECK-NEXT: line223 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1996,7 +2026,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line204 +// CHECK-NEXT: line223 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2004,12 +2034,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line204 +// CHECK-NEXT: line223 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line204 +// CHECK-NEXT: line223 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2030,7 +2060,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: issue_hash_content_of_line_in_context5d3f4c433004c7a6d4a06aa30cc3ea85 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line204 +// CHECK-NEXT: line223 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2046,12 +2076,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line211 +// CHECK-NEXT: line230 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line211 +// CHECK-NEXT: line230 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2059,12 +2089,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line212 +// CHECK-NEXT: line231 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line212 +// CHECK-NEXT: line231 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2076,7 +2106,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line212 +// CHECK-NEXT: line231 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2084,12 +2114,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line212 +// CHECK-NEXT: line231 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line212 +// CHECK-NEXT: line231 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2109,12 +2139,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line212 +// CHECK-NEXT: line231 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line212 +// CHECK-NEXT: line231 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2122,12 +2152,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line213 +// CHECK-NEXT: line232 // CHECK-NEXT: col24 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line213 +// CHECK-NEXT: line232 // CHECK-NEXT: col24 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2139,7 +2169,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line213 +// CHECK-NEXT: line232 // CHECK-NEXT: col24 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2147,12 +2177,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line213 +// CHECK-NEXT: line232 // CHECK-NEXT: col24 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line215 +// CHECK-NEXT: line234 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2168,7 +2198,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line213 +// CHECK-NEXT: line232 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2176,12 +2206,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line213 +// CHECK-NEXT: line232 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line215 +// CHECK-NEXT: line234 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2197,7 +2227,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line187 +// CHECK-NEXT: line50 // CHECK-NEXT: col1 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2215,12 +2245,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line187 +// CHECK-NEXT: line50 // CHECK-NEXT: col1 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line187 +// CHECK-NEXT: line50 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2228,12 +2258,46 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line189 +// CHECK-NEXT: line58 +// CHECK-NEXT: col2 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line58 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindcontrol +// CHECK-NEXT: edges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: start +// CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line189 +// CHECK-NEXT: line58 +// CHECK-NEXT: col2 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line58 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: end +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line59 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2245,7 +2309,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line189 +// CHECK-NEXT: line59 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2253,12 +2317,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line189 +// CHECK-NEXT: line59 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line189 +// CHECK-NEXT: line59 // CHECK-NEXT: col33 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2274,7 +2338,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line189 +// CHECK-NEXT: line59 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2282,12 +2346,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line189 +// CHECK-NEXT: line59 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line189 +// CHECK-NEXT: line59 // CHECK-NEXT: col33 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2303,7 +2367,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line213 +// CHECK-NEXT: line232 // CHECK-NEXT: col24 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2321,12 +2385,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line213 +// CHECK-NEXT: line232 // CHECK-NEXT: col24 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line213 +// CHECK-NEXT: line232 // CHECK-NEXT: col24 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2334,12 +2398,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line214 +// CHECK-NEXT: line233 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line214 +// CHECK-NEXT: line233 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2355,12 +2419,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line214 +// CHECK-NEXT: line233 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line214 +// CHECK-NEXT: line233 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2368,12 +2432,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line214 +// CHECK-NEXT: line233 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line214 +// CHECK-NEXT: line233 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2385,7 +2449,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line214 +// CHECK-NEXT: line233 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2393,12 +2457,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line214 +// CHECK-NEXT: line233 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line214 +// CHECK-NEXT: line233 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -2419,9 +2483,459 @@ void test_inline_dispatch_once() { // CHECK-NEXT: issue_hash_content_of_line_in_context265c4fd608dafee211bfa93d21c28866 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line214 +// CHECK-NEXT: line233 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: path +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindevent +// CHECK-NEXT: location +// CHECK-NEXT: +// CHECK-NEXT: line241 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: ranges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line241 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line243 +// CHECK-NEXT: col4 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: depth0 +// CHECK-NEXT: extended_message +// CHECK-NEXT: Calling '_dispatch_once' +// CHECK-NEXT: message +// CHECK-NEXT: Calling '_dispatch_once' +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindevent +// CHECK-NEXT: location +// CHECK-NEXT: +// CHECK-NEXT: line50 +// CHECK-NEXT: col1 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: depth1 +// CHECK-NEXT: extended_message +// CHECK-NEXT: Entered call from 'test_inline_dispatch_once_reachable' +// CHECK-NEXT: message +// CHECK-NEXT: Entered call from 'test_inline_dispatch_once_reachable' +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindcontrol +// CHECK-NEXT: edges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: start +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line50 +// CHECK-NEXT: col1 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line50 +// CHECK-NEXT: col6 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: end +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line58 +// CHECK-NEXT: col2 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line58 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindcontrol +// CHECK-NEXT: edges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: start +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line58 +// CHECK-NEXT: col2 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line58 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: end +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col15 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindevent +// CHECK-NEXT: location +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: ranges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col33 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: depth1 +// CHECK-NEXT: extended_message +// CHECK-NEXT: Calling 'dispatch_once' +// CHECK-NEXT: message +// CHECK-NEXT: Calling 'dispatch_once' +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindevent +// CHECK-NEXT: location +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: ranges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col33 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: depth2 +// CHECK-NEXT: extended_message +// CHECK-NEXT: Calling anonymous block +// CHECK-NEXT: message +// CHECK-NEXT: Calling anonymous block +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindevent +// CHECK-NEXT: location +// CHECK-NEXT: +// CHECK-NEXT: line241 +// CHECK-NEXT: col24 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: depth3 +// CHECK-NEXT: extended_message +// CHECK-NEXT: Entered call from 'dispatch_once' +// CHECK-NEXT: message +// CHECK-NEXT: Entered call from 'dispatch_once' +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindcontrol +// CHECK-NEXT: edges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: start +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line241 +// CHECK-NEXT: col24 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line241 +// CHECK-NEXT: col24 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: end +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line242 +// CHECK-NEXT: col7 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line242 +// CHECK-NEXT: col7 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindevent +// CHECK-NEXT: location +// CHECK-NEXT: +// CHECK-NEXT: line242 +// CHECK-NEXT: col7 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: ranges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line242 +// CHECK-NEXT: col7 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line242 +// CHECK-NEXT: col11 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: depth3 +// CHECK-NEXT: extended_message +// CHECK-NEXT: Null pointer value stored to 'p' +// CHECK-NEXT: message +// CHECK-NEXT: Null pointer value stored to 'p' +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindevent +// CHECK-NEXT: location +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: ranges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col33 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: depth2 +// CHECK-NEXT: extended_message +// CHECK-NEXT: Returning to caller +// CHECK-NEXT: message +// CHECK-NEXT: Returning to caller +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindevent +// CHECK-NEXT: location +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: ranges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col33 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: depth1 +// CHECK-NEXT: extended_message +// CHECK-NEXT: Returning from 'dispatch_once' +// CHECK-NEXT: message +// CHECK-NEXT: Returning from 'dispatch_once' +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindcontrol +// CHECK-NEXT: edges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: start +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line59 +// CHECK-NEXT: col15 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: end +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line63 +// CHECK-NEXT: col2 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line63 +// CHECK-NEXT: col17 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindevent +// CHECK-NEXT: location +// CHECK-NEXT: +// CHECK-NEXT: line241 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: ranges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line241 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line243 +// CHECK-NEXT: col4 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: depth0 +// CHECK-NEXT: extended_message +// CHECK-NEXT: Returning from '_dispatch_once' +// CHECK-NEXT: message +// CHECK-NEXT: Returning from '_dispatch_once' +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindcontrol +// CHECK-NEXT: edges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: start +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line241 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line241 +// CHECK-NEXT: col15 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: end +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line245 +// CHECK-NEXT: col6 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line245 +// CHECK-NEXT: col6 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindevent +// CHECK-NEXT: location +// CHECK-NEXT: +// CHECK-NEXT: line245 +// CHECK-NEXT: col6 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: ranges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line245 +// CHECK-NEXT: col4 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line245 +// CHECK-NEXT: col4 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: depth0 +// CHECK-NEXT: extended_message +// CHECK-NEXT: Dereference of null pointer (loaded from variable 'p') +// CHECK-NEXT: message +// CHECK-NEXT: Dereference of null pointer (loaded from variable 'p') +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: descriptionDereference of null pointer (loaded from variable 'p') +// CHECK-NEXT: categoryLogic error +// CHECK-NEXT: typeDereference of null pointer +// CHECK-NEXT: check_namecore.NullDereference +// CHECK-NEXT: +// CHECK-NEXT: issue_hash_content_of_line_in_context1e83bd4361a2351df0b4e77eb3a9109b +// CHECK-NEXT: issue_context_kindfunction +// CHECK-NEXT: issue_contexttest_inline_dispatch_once_reachable +// CHECK-NEXT: issue_hash_function_offset7 +// CHECK-NEXT: location +// CHECK-NEXT: +// CHECK-NEXT: line245 +// CHECK-NEXT: col6 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: // CHECK-NEXT: