diff options
author | Chris Lattner <sabre@nondot.org> | 2007-11-28 18:51:29 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-11-28 18:51:29 +0000 |
commit | b751c28a1afc24b3fb8e2ff9a29005100a8685ab (patch) | |
tree | 1b556567a9a4089dd5e94f93d0889b6f561ffdea /Sema/SemaDecl.cpp | |
parent | 0d3b50ec8667ef96e6aa774e2617eb5a8c5f8034 (diff) |
Fix a bug checking for 'int foo(void)' that didn't look through typedefs of void.
Bug pointed out by Michael Zolda, thanks!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44408 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Sema/SemaDecl.cpp')
-rw-r--r-- | Sema/SemaDecl.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Sema/SemaDecl.cpp b/Sema/SemaDecl.cpp index 5bd03d0128..88635c3bc5 100644 --- a/Sema/SemaDecl.cpp +++ b/Sema/SemaDecl.cpp @@ -895,7 +895,8 @@ Sema::DeclTy *Sema::ActOnStartOfFunctionDef(Scope *FnBodyScope, Declarator &D) { // Check for C99 6.7.5.3p10 - foo(void) is a non-varargs function that takes // no arguments, not a function that takes a single void argument. if (FTI.NumArgs == 1 && !FTI.isVariadic && FTI.ArgInfo[0].Ident == 0 && - FTI.ArgInfo[0].TypeInfo == Context.VoidTy.getAsOpaquePtr()) { + !QualType::getFromOpaquePtr(FTI.ArgInfo[0].TypeInfo).getQualifiers() && + QualType::getFromOpaquePtr(FTI.ArgInfo[0].TypeInfo)->isVoidType()) { // empty arg list, don't push any params. } else { for (unsigned i = 0, e = FTI.NumArgs; i != e; ++i) { |