// RUN: clang-cc -emit-llvm-only -verify %s struct S { virtual ~S() { } }; // PR5706 // Make sure this doesn't crash; the mangling doesn't matter because the name // doesn't have linkage. static struct : S { } obj8; void f() { // Make sure this doesn't crash; the mangling doesn't matter because the // generated vtable/etc. aren't modifiable (although it would be nice for // codesize to make it consistent inside inline functions). static struct : S { } obj8; } inline int f2() { // FIXME: We don't mangle the names of a or x correctly! static struct { int a() { static int x; return ++x; } } obj; return obj.a(); } int f3() { return f2(); } struct A { typedef struct { int x; } *ptr; ptr m; int a() { static struct x { // FIXME: We don't mangle the names of a or x correctly! int a(ptr A::*memp) { static int x; return ++x; } } a; return a.a(&A::m); } }; int f4() { return A().a(); }