From 5fbe7f97664dc2024252c03729198eb4b958a03c Mon Sep 17 00:00:00 2001 From: Jordan Rose Date: Thu, 1 Aug 2013 22:16:30 +0000 Subject: [PATCH] [analyzer] Silently drop all reports within synthesized bodies. Much of our diagnostic machinery is set up to assume that the report end path location is valid. Moreover, the user may be quite confused when something goes wrong in our BodyFarm-synthesized function bodies, which may be simplified or modified from the real implementations. Rather than try to make this all work somehow, just drop the report so that we don't try to go on with an invalid source location. Note that we still handle reports whose /paths/ go through invalid locations, just not those that are reported in one. We do have to be careful not to lose warnings because of this. The impetus for this change was an autorelease being processed within the synthesized body, and there may be other possible issues that are worth reporting in some way. We'll take these as they come, however. llvm-svn: 187624 --- clang/lib/StaticAnalyzer/Core/BugReporter.cpp | 16 ++ clang/test/Analysis/inlining/path-notes.m | 337 ++++++++++++++------------ 2 files changed, 196 insertions(+), 157 deletions(-) diff --git a/clang/lib/StaticAnalyzer/Core/BugReporter.cpp b/clang/lib/StaticAnalyzer/Core/BugReporter.cpp index d8d54fd..aaa8c8d 100644 --- a/clang/lib/StaticAnalyzer/Core/BugReporter.cpp +++ b/clang/lib/StaticAnalyzer/Core/BugReporter.cpp @@ -3202,6 +3202,22 @@ void BugReporter::Register(BugType *BT) { } void BugReporter::emitReport(BugReport* R) { + // Defensive checking: throw the bug away if it comes from a BodyFarm- + // generated body. We do this very early because report processing relies + // on the report's location being valid. + if (const ExplodedNode *E = R->getErrorNode()) { + const LocationContext *LCtx = E->getLocationContext(); + if (LCtx->getAnalysisDeclContext()->isBodyAutosynthesized()) + return; + } + + bool ValidSourceLoc = R->getLocation(getSourceManager()).isValid(); + assert(ValidSourceLoc); + // If we mess up in a release build, we'd still prefer to just drop the bug + // instead of trying to go on. + if (!ValidSourceLoc) + return; + // Compute the bug report's hash to determine its equivalence class. llvm::FoldingSetNodeID ID; R->Profile(ID); diff --git a/clang/test/Analysis/inlining/path-notes.m b/clang/test/Analysis/inlining/path-notes.m index e2735e8..43df65f 100644 --- a/clang/test/Analysis/inlining/path-notes.m +++ b/clang/test/Analysis/inlining/path-notes.m @@ -1,11 +1,17 @@ -// RUN: %clang_cc1 -analyze -analyzer-checker=core,osx.cocoa.NilArg -analyzer-output=text -analyzer-config suppress-null-return-paths=false -fblocks -verify %s -// RUN: %clang_cc1 -analyze -analyzer-checker=core,osx.cocoa.NilArg -analyzer-output=plist-multi-file -analyzer-config suppress-null-return-paths=false -analyzer-config path-diagnostics-alternate=false -fblocks %s -o %t.plist +// RUN: %clang_cc1 -analyze -analyzer-checker=core,osx.cocoa.NilArg,osx.cocoa.RetainCount -analyzer-output=text -analyzer-config suppress-null-return-paths=false -fblocks -verify %s +// RUN: %clang_cc1 -analyze -analyzer-checker=core,osx.cocoa.NilArg,osx.cocoa.RetainCount -analyzer-output=plist-multi-file -analyzer-config suppress-null-return-paths=false -analyzer-config path-diagnostics-alternate=false -fblocks %s -o %t.plist // RUN: FileCheck --input-file=%t.plist %s typedef struct dispatch_queue_s *dispatch_queue_t; typedef void (^dispatch_block_t)(void); void dispatch_sync(dispatch_queue_t, dispatch_block_t); +typedef long dispatch_once_t; +// Note: The real dispatch_once has all parameters marked nonnull. +// We don't do that here so that we can trigger a null dereference inside +// the synthesized body. +void dispatch_once(dispatch_once_t *predicate, dispatch_block_t block); + @interface Test @property int *p; @@ -35,6 +41,7 @@ typedef struct _NSZone NSZone; @interface NSObject {} - (id)init; + (id)alloc; +- (id)autorelease; @end @interface NSArray : NSObject @@ -147,6 +154,22 @@ id testCreateArrayLiteral(id myNil) { //expected-note@-1 {{Array element cannot be nil}} } +// +id testAutoreleaseTakesEffectInDispatch() { + static dispatch_once_t token = 0; + dispatch_once(&token, ^{}); + + id x = [[[[NSObject alloc] init] autorelease] autorelease]; + + dispatch_once(&token, ^{}); // don't crash + + return x; +} + +void testNullDereferenceInDispatch() { + dispatch_once(0, ^{}); // no-warning, don't crash +} + // CHECK: diagnostics // CHECK-NEXT: // CHECK-NEXT: @@ -160,12 +183,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -173,12 +196,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col17 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col17 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -190,7 +213,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col17 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -198,12 +221,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col17 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col17 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -223,12 +246,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col17 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col17 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -236,12 +259,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -253,7 +276,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -261,12 +284,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col18 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -282,7 +305,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line65 +// CHECK-NEXT: line72 // CHECK-NEXT: col1 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -300,12 +323,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line65 +// CHECK-NEXT: line72 // CHECK-NEXT: col1 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line65 +// CHECK-NEXT: line72 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -313,12 +336,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line66 +// CHECK-NEXT: line73 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line66 +// CHECK-NEXT: line73 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -334,12 +357,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line66 +// CHECK-NEXT: line73 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line66 +// CHECK-NEXT: line73 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -347,12 +370,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line66 +// CHECK-NEXT: line73 // CHECK-NEXT: col10 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line66 +// CHECK-NEXT: line73 // CHECK-NEXT: col10 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -364,7 +387,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line66 +// CHECK-NEXT: line73 // CHECK-NEXT: col10 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -372,12 +395,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line66 +// CHECK-NEXT: line73 // CHECK-NEXT: col10 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line66 +// CHECK-NEXT: line73 // CHECK-NEXT: col10 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -397,12 +420,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line66 +// CHECK-NEXT: line73 // CHECK-NEXT: col10 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line66 +// CHECK-NEXT: line73 // CHECK-NEXT: col10 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -410,12 +433,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line66 +// CHECK-NEXT: line73 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line66 +// CHECK-NEXT: line73 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -427,7 +450,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line66 +// CHECK-NEXT: line73 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -435,12 +458,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line66 +// CHECK-NEXT: line73 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line66 +// CHECK-NEXT: line73 // CHECK-NEXT: col12 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -456,7 +479,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -464,12 +487,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col18 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -489,12 +512,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -502,12 +525,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col20 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col20 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -519,7 +542,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col20 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -527,12 +550,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col22 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -553,7 +576,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: issue_hash1 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line72 +// CHECK-NEXT: line79 // CHECK-NEXT: col20 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -569,12 +592,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line81 +// CHECK-NEXT: line88 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line81 +// CHECK-NEXT: line88 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -582,12 +605,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line87 +// CHECK-NEXT: line94 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line87 +// CHECK-NEXT: line94 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -599,7 +622,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line87 +// CHECK-NEXT: line94 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -607,12 +630,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line87 +// CHECK-NEXT: line94 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line92 +// CHECK-NEXT: line99 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -628,7 +651,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line87 +// CHECK-NEXT: line94 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -636,12 +659,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line87 +// CHECK-NEXT: line94 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line92 +// CHECK-NEXT: line99 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -657,7 +680,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line87 +// CHECK-NEXT: line94 // CHECK-NEXT: col30 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -675,12 +698,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line87 +// CHECK-NEXT: line94 // CHECK-NEXT: col30 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line87 +// CHECK-NEXT: line94 // CHECK-NEXT: col30 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -688,12 +711,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line90 +// CHECK-NEXT: line97 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line90 +// CHECK-NEXT: line97 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -705,7 +728,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line90 +// CHECK-NEXT: line97 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -713,12 +736,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line90 +// CHECK-NEXT: line97 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line90 +// CHECK-NEXT: line97 // CHECK-NEXT: col9 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -734,7 +757,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line87 +// CHECK-NEXT: line94 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -742,12 +765,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line87 +// CHECK-NEXT: line94 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line92 +// CHECK-NEXT: line99 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -763,7 +786,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line87 +// CHECK-NEXT: line94 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -771,12 +794,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line87 +// CHECK-NEXT: line94 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line92 +// CHECK-NEXT: line99 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -796,12 +819,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line87 +// CHECK-NEXT: line94 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line87 +// CHECK-NEXT: line94 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -809,12 +832,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line94 +// CHECK-NEXT: line101 // CHECK-NEXT: col12 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line94 +// CHECK-NEXT: line101 // CHECK-NEXT: col12 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -826,7 +849,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line94 +// CHECK-NEXT: line101 // CHECK-NEXT: col12 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -834,12 +857,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line94 +// CHECK-NEXT: line101 // CHECK-NEXT: col10 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line94 +// CHECK-NEXT: line101 // CHECK-NEXT: col14 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -860,7 +883,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: issue_hash14 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line94 +// CHECK-NEXT: line101 // CHECK-NEXT: col12 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -876,12 +899,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line102 +// CHECK-NEXT: line109 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line102 +// CHECK-NEXT: line109 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -889,12 +912,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line107 +// CHECK-NEXT: line114 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line107 +// CHECK-NEXT: line114 // CHECK-NEXT: col15 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -906,7 +929,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line107 +// CHECK-NEXT: line114 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -914,12 +937,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line107 +// CHECK-NEXT: line114 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line113 +// CHECK-NEXT: line120 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -935,7 +958,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line107 +// CHECK-NEXT: line114 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -943,12 +966,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line107 +// CHECK-NEXT: line114 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line113 +// CHECK-NEXT: line120 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -964,7 +987,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line107 +// CHECK-NEXT: line114 // CHECK-NEXT: col30 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -982,12 +1005,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line107 +// CHECK-NEXT: line114 // CHECK-NEXT: col30 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line107 +// CHECK-NEXT: line114 // CHECK-NEXT: col30 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -995,12 +1018,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line109 +// CHECK-NEXT: line116 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line109 +// CHECK-NEXT: line116 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1012,7 +1035,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line109 +// CHECK-NEXT: line116 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1020,12 +1043,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line109 +// CHECK-NEXT: line116 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line109 +// CHECK-NEXT: line116 // CHECK-NEXT: col9 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1045,12 +1068,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line109 +// CHECK-NEXT: line116 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line109 +// CHECK-NEXT: line116 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1058,12 +1081,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line111 +// CHECK-NEXT: line118 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line111 +// CHECK-NEXT: line118 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1075,7 +1098,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line111 +// CHECK-NEXT: line118 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1083,12 +1106,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line111 +// CHECK-NEXT: line118 // CHECK-NEXT: col12 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line111 +// CHECK-NEXT: line118 // CHECK-NEXT: col12 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1106,7 +1129,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: typeuninitialized variable captured by block // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line111 +// CHECK-NEXT: line118 // CHECK-NEXT: col5 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1122,12 +1145,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line133 +// CHECK-NEXT: line140 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line133 +// CHECK-NEXT: line140 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1135,12 +1158,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col23 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1156,12 +1179,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col23 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1169,12 +1192,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col26 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col26 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1186,7 +1209,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col26 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1194,12 +1217,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col26 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col27 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1219,12 +1242,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col26 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col26 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1232,12 +1255,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col25 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col25 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1249,7 +1272,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col25 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1257,12 +1280,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col25 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col35 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1278,7 +1301,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1286,12 +1309,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line137 +// CHECK-NEXT: line144 // CHECK-NEXT: col36 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1307,7 +1330,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line127 +// CHECK-NEXT: line134 // CHECK-NEXT: col1 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1325,12 +1348,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line127 +// CHECK-NEXT: line134 // CHECK-NEXT: col1 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line127 +// CHECK-NEXT: line134 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1338,12 +1361,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line128 +// CHECK-NEXT: line135 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line128 +// CHECK-NEXT: line135 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1359,12 +1382,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line128 +// CHECK-NEXT: line135 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line128 +// CHECK-NEXT: line135 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1372,12 +1395,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line128 +// CHECK-NEXT: line135 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line128 +// CHECK-NEXT: line135 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1389,7 +1412,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line128 +// CHECK-NEXT: line135 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1397,12 +1420,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line128 +// CHECK-NEXT: line135 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line128 +// CHECK-NEXT: line135 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1423,7 +1446,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: issue_hash1 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line128 +// CHECK-NEXT: line135 // CHECK-NEXT: col6 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1439,12 +1462,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line144 +// CHECK-NEXT: line151 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line144 +// CHECK-NEXT: line151 // CHECK-NEXT: col4 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1452,12 +1475,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line144 +// CHECK-NEXT: line151 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line144 +// CHECK-NEXT: line151 // CHECK-NEXT: col11 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1469,7 +1492,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line144 +// CHECK-NEXT: line151 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1477,12 +1500,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line144 +// CHECK-NEXT: line151 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line144 +// CHECK-NEXT: line151 // CHECK-NEXT: col11 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1502,12 +1525,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line144 +// CHECK-NEXT: line151 // CHECK-NEXT: col7 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line144 +// CHECK-NEXT: line151 // CHECK-NEXT: col11 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1515,12 +1538,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line146 +// CHECK-NEXT: line153 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line146 +// CHECK-NEXT: line153 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1536,12 +1559,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line146 +// CHECK-NEXT: line153 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line146 +// CHECK-NEXT: line153 // CHECK-NEXT: col8 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1549,12 +1572,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line146 +// CHECK-NEXT: line153 // CHECK-NEXT: col10 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line146 +// CHECK-NEXT: line153 // CHECK-NEXT: col10 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1566,7 +1589,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line146 +// CHECK-NEXT: line153 // CHECK-NEXT: col10 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1574,12 +1597,12 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line146 +// CHECK-NEXT: line153 // CHECK-NEXT: col19 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: -// CHECK-NEXT: line146 +// CHECK-NEXT: line153 // CHECK-NEXT: col23 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1600,7 +1623,7 @@ id testCreateArrayLiteral(id myNil) { // CHECK-NEXT: issue_hash3 // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line146 +// CHECK-NEXT: line153 // CHECK-NEXT: col10 // CHECK-NEXT: file0 // CHECK-NEXT: -- 2.7.4