summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/mangle-local-class-names.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/CodeGenCXX/mangle-local-class-names.cpp')
-rw-r--r--clang/test/CodeGenCXX/mangle-local-class-names.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/mangle-local-class-names.cpp b/clang/test/CodeGenCXX/mangle-local-class-names.cpp
index c3ea31a54ca..186d76a225a 100644
--- a/clang/test/CodeGenCXX/mangle-local-class-names.cpp
+++ b/clang/test/CodeGenCXX/mangle-local-class-names.cpp
@@ -55,6 +55,26 @@ void GORF (float IVAR1)
}
}
+// CHECK: @_ZZ12OmittingCodefEN4SSSSC1E_0RKf
+inline void OmittingCode(float x) {
+ if (0) {
+ struct SSSS {
+ float bv;
+ SSSS(const float& from): bv(from) { }
+ };
+
+ SSSS VAR1(x);
+ }
+
+ struct SSSS {
+ float bv;
+ SSSS(const float& from): bv(from) { }
+ };
+
+ SSSS VAR2(x);
+}
+void CallOmittingCode() { OmittingCode(1); }
+
// CHECK: @_ZZ25LocalTemplateFunctionTestdEN5Local3fooIdEET_S1_
int LocalTemplateFunctionTest(double d) {
struct Local {
@@ -64,3 +84,14 @@ int LocalTemplateFunctionTest(double d) {
};
return Local().foo(d);
}
+
+// CHECK: @_ZZ15LocalAnonStructvENUt0_1gEv
+inline void LocalAnonStruct() {
+ if (0) {
+ struct { void f() {} } x;
+ x.f();
+ }
+ struct { void g() {} } y;
+ y.g();
+}
+void CallLocalAnonStruct() { LocalAnonStruct(); }
OpenPOWER on IntegriCloud