llvm-project/clang/lib
Douglas Gregor e6565625f4 Migrate the mish-mash of declaration checks in
Sema::ActOnUninitializedDecl over to InitializationSequence (with
default initialization), eliminating redundancy. More importantly, we
now check that a const definition in C++ has an initilizer, which was
an #if 0'd code for many, many months. A few other tweaks were needed
to get everything working again:

  - Fix all of the places in the testsuite where we defined const
    objects without initializers (now that we diagnose this issue)
  - Teach instantiation of static data members to find the previous
    declaration, so that we build proper redeclaration
    chains. Previously, we had the redeclaration chain but built it
    too late to be useful, because...
  - Teach instantiation of static data member definitions not to try
    to check an initializer if a previous declaration already had an
    initializer. This makes sure that we don't complain about static
    const data members with in-class initializers and out-of-line
    definitions.
  - Move all of the incomplete-type checking logic out of
    Sema::FinalizeDeclaratorGroup; it makes more sense in
    ActOnUnitializedDecl.

There may still be a few places where we can improve these
diagnostics. I'll address that as a separate commit.

llvm-svn: 95657
2010-02-09 07:26:29 +00:00
..
AST Reset the found-virtual-base state unless the *current* base produces a path, 2010-02-09 00:57:12 +00:00
Analysis Convert tabs to spaces. 2010-02-09 00:04:09 +00:00
Basic First stage of adding AltiVec support 2010-02-05 00:12:22 +00:00
Checker Fix -Asserts warning. 2010-02-08 20:24:21 +00:00
CodeGen IRgen: Add CreateMemTemp, for creating an temporary memory object for a particular type, and flood fill. - CreateMemTemp sets the alignment on the alloca correctly, which fixes a great many places in IRgen where we were doing the wrong thing. 2010-02-09 02:48:28 +00:00
Driver Add support for threadsafe statics, and make them the default (matching gcc). 2010-02-06 23:23:06 +00:00
Frontend Keep track of whether a tag was defined in a declarator vs. being 2010-02-08 22:07:33 +00:00
Headers fix PR6187: various load functions in xmmintrin.h were missing 'const'. 2010-02-01 20:14:14 +00:00
Index -fno-rtti is now the default. 2010-01-24 20:43:31 +00:00
Lex When placing an annotation token over an existing annotation token, make sure that the new token's range extends to the end of the old token. Assert that in AnnotateCachedTokens. Fixes PR6248. 2010-02-08 19:35:18 +00:00
Parse When placing an annotation token over an existing annotation token, make sure that the new token's range extends to the end of the old token. Assert that in AnnotateCachedTokens. Fixes PR6248. 2010-02-08 19:35:18 +00:00
Rewrite Some clean up of replacement text API no longer needed by 2010-02-05 16:43:40 +00:00
Runtime clang/Darwin: Update for rename of 10.4 static runtime library. 2010-01-20 02:35:02 +00:00
Sema Migrate the mish-mash of declaration checks in 2010-02-09 07:26:29 +00:00
CMakeLists.txt Split libAnalysis into two libraries: libAnalysis and libChecker. 2010-01-25 04:41:41 +00:00
Makefile Split libAnalysis into two libraries: libAnalysis and libChecker. 2010-01-25 04:41:41 +00:00