diff options
author | Steve Naroff <snaroff@apple.com> | 2008-01-18 00:39:39 +0000 |
---|---|---|
committer | Steve Naroff <snaroff@apple.com> | 2008-01-18 00:39:39 +0000 |
commit | d3cd1e56d19474ac785e54c3915d82d2ad7f7fa9 (patch) | |
tree | 7c6f28f0cb9ffd2e65ed2d2e2646db271a36feb9 /Sema/SemaDecl.cpp | |
parent | 51f5499420e3e2344c1e6c3eff4764c4ec0b47ca (diff) |
Sema::FinalizeDeclaratorGroup()...make sure we emit an diagnostic for tentative definitions with incomplete types. Touch up all test cases that are effected.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46152 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 9e6dbfe333..c2c66a2015 100644 --- a/Sema/SemaDecl.cpp +++ b/Sema/SemaDecl.cpp @@ -853,7 +853,8 @@ Sema::DeclTy *Sema::FinalizeDeclaratorGroup(Scope *S, DeclTy *group) { // storage-class specifier or with the storage-class specifier "static", // constitutes a tentative definition. Note: A tentative definition with // external linkage is valid (C99 6.2.2p5). - if (FVD && !FVD->getInit() && FVD->getStorageClass() == VarDecl::Static) { + if (FVD && !FVD->getInit() && (FVD->getStorageClass() == VarDecl::Static || + FVD->getStorageClass() == VarDecl::None)) { // C99 6.9.2p3: If the declaration of an identifier for an object is // a tentative definition and has internal linkage (C99 6.2.2p3), the // declared type shall not be an incomplete type. |