diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-10-15 20:23:22 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-10-15 20:23:22 +0000 |
commit | 2e3e75630471a3fb1f9014563e56d8402dd9ecb7 (patch) | |
tree | b3f32f4daee1804c06f2c957b9e817821a463012 /clang/lib/Sema/SemaDeclCXX.cpp | |
parent | ba13e8db177f098be8aec23444c9621af3092a59 (diff) | |
download | bcm5719-llvm-2e3e75630471a3fb1f9014563e56d8402dd9ecb7.tar.gz bcm5719-llvm-2e3e75630471a3fb1f9014563e56d8402dd9ecb7.zip |
Fix this bug:
typedef int f();
struct S {
f *x; // incorrectly assuming this is function decl, leading to failed assertions.
};
llvm-svn: 57598
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 4 |
1 files changed, 3 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(); |