diff options
author | Sam Weinig <sam.weinig@gmail.com> | 2009-12-28 03:19:38 +0000 |
---|---|---|
committer | Sam Weinig <sam.weinig@gmail.com> | 2009-12-28 03:19:38 +0000 |
commit | 3521d01aed2f55b66c7ce2ad47541a9974079699 (patch) | |
tree | 4e8b926cc1535286b32944d857a070ae95f9e12f /test/CodeGenCXX/predefined-expr.cpp | |
parent | 64a4eb277f70be8b50f33f25918747bcf51ef24c (diff) |
Fix for PR5871. Make __PRETTY_FUNCTION__ work for member functions defined in a class local to a function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92200 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/predefined-expr.cpp')
-rw-r--r-- | test/CodeGenCXX/predefined-expr.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/CodeGenCXX/predefined-expr.cpp b/test/CodeGenCXX/predefined-expr.cpp index e726adb163..f5e5ca9528 100644 --- a/test/CodeGenCXX/predefined-expr.cpp +++ b/test/CodeGenCXX/predefined-expr.cpp @@ -75,6 +75,9 @@ // CHECK: private constant [27 x i8] c"anonymousNamespaceFunction\00" // CHECK: private constant [84 x i8] c"void <anonymous namespace>::ClassInAnonymousNamespace::anonymousNamespaceFunction()\00" +// CHECK: private constant [19 x i8] c"localClassFunction\00" +// CHECK: private constant [59 x i8] c"void NS::localClass(int)::LocalClass::localClassFunction()\00" + int printf(const char * _Format, ...); class ClassInTopLevelNamespace { @@ -270,6 +273,19 @@ public: } anonymousUnion; }; +void localClass(int) { + class LocalClass { + public: + void localClassFunction() { + printf("__func__ %s\n", __func__); + printf("__FUNCTION__ %s\n", __FUNCTION__); + printf("__PRETTY_FUNCTION__ %s\n\n", __PRETTY_FUNCTION__); + } + }; + LocalClass lc; + lc.localClassFunction(); +} + extern void externFunction() { printf("__func__ %s\n", __func__); printf("__FUNCTION__ %s\n", __FUNCTION__); @@ -325,6 +341,8 @@ int main() { anonymous.anonymousStruct.anonymousStructFunction(); anonymous.anonymousUnion.anonymousUnionFunction(); + NS::localClass(0); + NS::externFunction(); return 0; |