summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/linkage.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-05-27 14:50:21 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-05-27 14:50:21 +0000
commit111bb2ef8d117e0a51bdfaaa6fe8c8f407141c08 (patch)
tree8eacb0102273bbbbdf7a8a96d62b32d6b25926d5 /clang/test/CodeGenCXX/linkage.cpp
parent1d66e366e96d9622bfdbc9a78383033e89a808b4 (diff)
downloadbcm5719-llvm-111bb2ef8d117e0a51bdfaaa6fe8c8f407141c08.tar.gz
bcm5719-llvm-111bb2ef8d117e0a51bdfaaa6fe8c8f407141c08.zip
Fix the linkage of local types in inline VisibleNoLinkage functions.
We were handling only local types in inline External functions before. llvm-svn: 182737
Diffstat (limited to 'clang/test/CodeGenCXX/linkage.cpp')
-rw-r--r--clang/test/CodeGenCXX/linkage.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/linkage.cpp b/clang/test/CodeGenCXX/linkage.cpp
index c803a941614..9d66934a243 100644
--- a/clang/test/CodeGenCXX/linkage.cpp
+++ b/clang/test/CodeGenCXX/linkage.cpp
@@ -143,3 +143,19 @@ namespace test11 {
}
void *h() { return g(); }
}
+
+namespace test12 {
+ // CHECK-DAG: define linkonce_odr void @_ZN6test123fooIZNS_3barIZNS_3zedEvE2S2EEPvvE2S1EEvv
+ template <typename T> void foo() {}
+ template <typename T> inline void *bar() {
+ enum S1 {
+ };
+ return reinterpret_cast<void *>(foo<S1>);
+ }
+ inline void *zed() {
+ enum S2 {
+ };
+ return reinterpret_cast<void *>(bar<S2>);
+ }
+ void *h() { return zed(); }
+}
OpenPOWER on IntegriCloud