diff options
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 4 | ||||
-rw-r--r-- | clang/test/SemaCXX/class.cpp | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 2fae627ea6a..e06761f1ba8 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -353,7 +353,9 @@ Sema::ActOnCXXMemberDeclarator(Scope *S, AccessSpecifier AS, Declarator &D, } bool isFunc = D.isFunctionDeclarator(); - if (!isFunc && D.getDeclSpec().getTypeSpecType() == DeclSpec::TST_typedef) { + if (!isFunc && + D.getDeclSpec().getTypeSpecType() == DeclSpec::TST_typedef && + D.getNumTypeObjects() == 0) { // Check also for this case: // // typedef int f(); diff --git a/clang/test/SemaCXX/class.cpp b/clang/test/SemaCXX/class.cpp index 71ad7de9143..c3886f3922e 100644 --- a/clang/test/SemaCXX/class.cpp +++ b/clang/test/SemaCXX/class.cpp @@ -26,6 +26,7 @@ public: typedef int func(); func tm; + func *ptm; func btm : 1; // expected-error {{error: bit-field 'btm' with non-integral type}} NestedC bc : 1; // expected-error {{error: bit-field 'bc' with non-integral type}} |