diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-08-19 20:49:38 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-08-19 20:49:38 +0000 |
commit | 7747ce226051791be0a03ec106d9502e3564c1af (patch) | |
tree | aee95454826c294c66952e75676eecd939ea4226 /clang/test/CodeGenObjC/local-static-block.m | |
parent | 39259ffc65556b2e848ff691f6611f896c0ed6aa (diff) | |
download | bcm5719-llvm-7747ce226051791be0a03ec106d9502e3564c1af.tar.gz bcm5719-llvm-7747ce226051791be0a03ec106d9502e3564c1af.zip |
Internal-linkage variables with constant-evaluatable initializers do not need to be emitted. (Also reduces the set of variables that need to be eagerly deserialized when using PCH / modules.)
llvm-svn: 245497
Diffstat (limited to 'clang/test/CodeGenObjC/local-static-block.m')
-rw-r--r-- | clang/test/CodeGenObjC/local-static-block.m | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/clang/test/CodeGenObjC/local-static-block.m b/clang/test/CodeGenObjC/local-static-block.m index b55cc6af4d6..73c670f5c92 100644 --- a/clang/test/CodeGenObjC/local-static-block.m +++ b/clang/test/CodeGenObjC/local-static-block.m @@ -14,8 +14,13 @@ static NSArray *(^ArrayRecurs)(NSArray *addresses, unsigned long level) = ^(NSA return (NSArray *)0; }; +extern NSArray *address; +extern unsigned long level; + void FUNC() { + ArrayRecurs(address, level); + static NSArray *(^ArrayRecurs)(NSArray *addresses, unsigned long level) = ^(NSArray *addresses, unsigned long level) { for(id rawAddress in addresses) @@ -25,6 +30,7 @@ void FUNC() } return (NSArray *)0; }; + ArrayRecurs(address, level); if (ArrayRecurs) { static NSArray *(^ArrayRecurs)(NSArray *addresses, unsigned long level) = ^(NSArray *addresses, unsigned long level) { @@ -36,6 +42,7 @@ void FUNC() } return (NSArray *)0; }; + ArrayRecurs(address, level); } } @@ -50,8 +57,9 @@ void FUNC1() } return (NSArray *)0; }; + ArrayRecurs(address, level); } // CHECK-LP64: @ArrayRecurs = internal global // CHECK-LP64: @FUNC.ArrayRecurs = internal global -// CHECK-LP64: @FUNC.ArrayRecurs.3 = internal global +// CHECK-LP64: @FUNC.ArrayRecurs.1 = internal global // CHECK-LP64: @FUNC1.ArrayRecurs = internal global |