diff options
author | David Majnemer <david.majnemer@gmail.com> | 2014-04-29 06:18:53 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2014-04-29 06:18:53 +0000 |
commit | 846c2833ecaaffc0114282b77d3b5dacb44a01fe (patch) | |
tree | 8d25d538ab34e270e840723bf6de00ac03cd2827 /clang/test | |
parent | 105d6abe506c7591118ce065bcbbea7399efd1f6 (diff) | |
download | bcm5719-llvm-846c2833ecaaffc0114282b77d3b5dacb44a01fe.tar.gz bcm5719-llvm-846c2833ecaaffc0114282b77d3b5dacb44a01fe.zip |
CodeGen: Reference temporaries inherit visibility
Reference temporaries inherited many properties from the variable that
they correspond to but visibility wasn't one of them.
llvm-svn: 207496
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/CodeGenCXX/const-init-cxx11.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/const-init-cxx11.cpp b/clang/test/CodeGenCXX/const-init-cxx11.cpp index 26ad9cb7676..891a732de03 100644 --- a/clang/test/CodeGenCXX/const-init-cxx11.cpp +++ b/clang/test/CodeGenCXX/const-init-cxx11.cpp @@ -395,6 +395,8 @@ namespace UnemittedTemporaryDecl { // CHECK: @_ZZN12LocalVarInit8mutable_EvE1a = private unnamed_addr constant {{.*}} i32 103 // CHECK: @_ZGRN33ClassTemplateWithStaticDataMember1SIvE1aE = linkonce_odr constant i32 5 // CHECK: @_ZN33ClassTemplateWithStaticDataMember3useE = constant i32* @_ZGRN33ClassTemplateWithStaticDataMember1SIvE1aE +// CHECK: @_ZGRN39ClassTemplateWithHiddenStaticDataMember1SIvE1aE = linkonce_odr hidden constant i32 5 +// CHECK: @_ZN39ClassTemplateWithHiddenStaticDataMember3useE = constant i32* @_ZGRN39ClassTemplateWithHiddenStaticDataMember1SIvE1aE // CHECK: @_ZGRZN20InlineStaticConstRef3funEvE1i = linkonce_odr constant i32 10 // Constant initialization tests go before this point, @@ -574,3 +576,13 @@ namespace ClassTemplateWithStaticDataMember { const int &S<T>::a = 5; const int &use = S<void>::a; } + +namespace ClassTemplateWithHiddenStaticDataMember { + template <typename T> + struct S { + __attribute__((visibility("hidden"))) static const int &a; + }; + template <typename T> + const int &S<T>::a = 5; + const int &use = S<void>::a; +} |