]> granicus.if.org Git - clang/log
clang
16 years agoMore #include cleaning
Daniel Dunbar [Mon, 11 Aug 2008 04:54:23 +0000 (04:54 +0000)]
More #include cleaning
 - Drop Expr.h,RecordLayout.h from ASTContext.h (for DeclBase.h and
   SourceLocation.h)
 - Move ASTContext constructor into implementation

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54627 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMore #include cleaning
Daniel Dunbar [Mon, 11 Aug 2008 03:45:03 +0000 (03:45 +0000)]
More #include cleaning
 - Drop Diagnostic.h from DeclSpec.h, move utility Diag methods into
   implementation .cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54626 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMinor #include cleaning
Daniel Dunbar [Mon, 11 Aug 2008 03:27:53 +0000 (03:27 +0000)]
Minor #include cleaning
 - Drop TokenKinds.h from Action.h
 - Move DeclSpec.h from Sema.h into individual Sema .cpp files

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54625 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd dummy Mac Objective-C runtime interface.
Daniel Dunbar [Mon, 11 Aug 2008 02:45:11 +0000 (02:45 +0000)]
Add dummy Mac Objective-C runtime interface.
  - Not currently accessible and completely non-functional.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54624 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agofix linking with .so files specified in cmd line (this fixes some libtool usages)
Nuno Lopes [Sun, 10 Aug 2008 22:17:57 +0000 (22:17 +0000)]
fix linking with .so files specified in cmd line (this fixes some libtool usages)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54623 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agopass -R arg to linker
Nuno Lopes [Sun, 10 Aug 2008 21:58:01 +0000 (21:58 +0000)]
pass -R arg to linker

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54622 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoBack out r54608 (inline string literals were getting an extra '\0')
Daniel Dunbar [Sun, 10 Aug 2008 20:25:57 +0000 (20:25 +0000)]
Back out r54608 (inline string literals were getting an extra '\0')
  temporarily, I assumed GetAddrForConstantString literal was being
  used consistently but it doesn't look like it is.

Factored out a CodeGenModule::getStringForStringLiteral which handles
  extracting a std::string for the bytes of a StringLiteral, padded to
  match the type.

Update EmitLValue to use getStringForStringLiteral, this was
  previously not padding strings correctly. Good thing we only emit
  strings in 4 different places!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54621 91177308-0d34-0410-b5e6-96231b3b80d8

16 years ago* Remove isInSystemHeader() from DiagClient, move it to SourceManager
Nico Weber [Sun, 10 Aug 2008 19:59:06 +0000 (19:59 +0000)]
* Remove isInSystemHeader() from DiagClient, move it to SourceManager
* Move FormatError() from TextDiagnostic up to DiagClient, remove now
  empty class TextDiagnostic
* Make DiagClient optional for Diagnostic

This fixes the following problems:

* -html-diags (and probably others) does now output the same set of
  warnings as console clang does
* nothing crashes if one forgets to call setHeaderSearch() on
  TextDiagnostic
* some code duplication is removed

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54620 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoForgot to modify LAST_EXPR (thanks Nuno).
Steve Naroff [Sun, 10 Aug 2008 19:28:37 +0000 (19:28 +0000)]
Forgot to modify LAST_EXPR (thanks Nuno).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54619 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDo not crash with -serialize.
Nico Weber [Sun, 10 Aug 2008 19:20:05 +0000 (19:20 +0000)]
Do not crash with -serialize.

This happened because seralization was done in the constructor, and at that time the TranslationUnit is no longer valid.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54618 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoCleanup ObjCSuperRefExpr (remove last usage and AST node:-).
Steve Naroff [Sun, 10 Aug 2008 19:10:41 +0000 (19:10 +0000)]
Cleanup ObjCSuperRefExpr (remove last usage and AST node:-).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54617 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd svn:ignore properties for Release-Asserts dirs
Daniel Dunbar [Sun, 10 Aug 2008 18:21:41 +0000 (18:21 +0000)]
Add svn:ignore properties for Release-Asserts dirs

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54616 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove the old evaluator code.
Anders Carlsson [Sun, 10 Aug 2008 17:03:01 +0000 (17:03 +0000)]
Remove the old evaluator code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54615 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoInitListChecker::CheckListElementTypes(): Check for function types and issue an appro...
Steve Naroff [Sun, 10 Aug 2008 16:05:48 +0000 (16:05 +0000)]
InitListChecker::CheckListElementTypes(): Check for function types and issue an appropriate diagnostic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54614 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoCleanup from yesterday...make isTentativeDefinition() a static helper function (no...
Steve Naroff [Sun, 10 Aug 2008 15:28:06 +0000 (15:28 +0000)]
Cleanup from yesterday...make isTentativeDefinition() a static helper function (no need for it to be part of the Sema API).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54613 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSema::CheckForFileScopedRedefinitions(): Make sure tentative decls of incomplete...
Steve Naroff [Sun, 10 Aug 2008 15:20:13 +0000 (15:20 +0000)]
Sema::CheckForFileScopedRedefinitions(): Make sure tentative decls of incomplete array types are completed (and diagnosed properly).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54612 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAllow the preprocessor to cache the lexed tokens, so that we can do efficient lookahe...
Argyrios Kyrtzidis [Sun, 10 Aug 2008 13:15:22 +0000 (13:15 +0000)]
Allow the preprocessor to cache the lexed tokens, so that we can do efficient lookahead and backtracking.

1) New public methods added:
  -EnableBacktrackAtThisPos
  -DisableBacktrack
  -Backtrack
  -isBacktrackEnabled

2) LookAhead() implementation is replaced with a more efficient one.
3) LookNext() is removed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54611 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix crash during initialization of a bitfield which followed a zero
Daniel Dunbar [Sun, 10 Aug 2008 07:00:24 +0000 (07:00 +0000)]
Fix crash during initialization of a bitfield which followed a zero
  length element.

Fix some 80-col violations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54610 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdate ShuffeVectorExpr::getShuffleMaskIdx to use
Daniel Dunbar [Sun, 10 Aug 2008 06:58:01 +0000 (06:58 +0000)]
Update ShuffeVectorExpr::getShuffleMaskIdx to use
  getIntegerConstantExprValue.

Tweak getIntegerConstantExprValue to suppress warning in
  Release-Asserts mode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54609 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoBug fix, inline string literals were getting an extra '\0'.
Daniel Dunbar [Sun, 10 Aug 2008 06:27:44 +0000 (06:27 +0000)]
Bug fix, inline string literals were getting an extra '\0'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54608 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agotighten up some code and some wording on diagnostics.
Chris Lattner [Sun, 10 Aug 2008 02:05:13 +0000 (02:05 +0000)]
tighten up some code and some wording on diagnostics.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54607 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agowrap some long diagnostics, make 'initializer is not a constant' diagnostic
Chris Lattner [Sun, 10 Aug 2008 01:58:45 +0000 (01:58 +0000)]
wrap some long diagnostics, make 'initializer is not a constant' diagnostic
a bit more clear (rdar://5646070)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54606 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agorename PreDefinedExpr -> PredefinedExpr
Chris Lattner [Sun, 10 Aug 2008 01:53:14 +0000 (01:53 +0000)]
rename PreDefinedExpr -> PredefinedExpr

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54605 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd some C++ Decl statistics.
Argyrios Kyrtzidis [Sun, 10 Aug 2008 01:47:31 +0000 (01:47 +0000)]
Add some C++ Decl statistics.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54604 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake sure to count the struct elements correctly; here, we want the
Eli Friedman [Sat, 9 Aug 2008 23:45:45 +0000 (23:45 +0000)]
Make sure to count the struct elements correctly; here, we want the
member count.  The count returned by numStructUnionElements is the
number of initializers that will be consumed, not the number of members
to iterate through.  Fixes PR2534.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54601 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix for PR2631; make va_arg work correctly on x86-64.
Eli Friedman [Sat, 9 Aug 2008 23:32:40 +0000 (23:32 +0000)]
Fix for PR2631; make va_arg work correctly on x86-64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54600 91177308-0d34-0410-b5e6-96231b3b80d8

16 years ago80 cols
Nico Weber [Sat, 9 Aug 2008 23:08:17 +0000 (23:08 +0000)]
80 cols

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54599 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove the ICE pointer cast hack; the issue this was working around is
Eli Friedman [Sat, 9 Aug 2008 22:24:21 +0000 (22:24 +0000)]
Remove the ICE pointer cast hack; the issue this was working around is
now fixed in an alternate way.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54598 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoTurn on the new constant expression evaluator; it isn't
Eli Friedman [Sat, 9 Aug 2008 22:21:56 +0000 (22:21 +0000)]
Turn on the new constant expression evaluator; it isn't
anywhere near complete, but I don't know of any issues, and it can
handle enough to allow removing the I-C-E pointer cast hack.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54597 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoadd assert, use make_pair() instead of pair constructor
Nico Weber [Sat, 9 Aug 2008 22:13:42 +0000 (22:13 +0000)]
add assert, use make_pair() instead of pair constructor

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54596 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMention 'wchar_t' at the C++ status page.
Argyrios Kyrtzidis [Sat, 9 Aug 2008 22:12:36 +0000 (22:12 +0000)]
Mention 'wchar_t' at the C++ status page.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54595 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agofix spello
Nico Weber [Sat, 9 Aug 2008 22:12:22 +0000 (22:12 +0000)]
fix spello

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54594 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoHandle BuiltinType::WChar inside CodeGenTypes::ConvertNewType().
Argyrios Kyrtzidis [Sat, 9 Aug 2008 22:01:55 +0000 (22:01 +0000)]
Handle BuiltinType::WChar inside CodeGenTypes::ConvertNewType().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54593 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix PR2400 by more graceful handling of invalid decls. Don't try to layout
Chris Lattner [Sat, 9 Aug 2008 21:35:13 +0000 (21:35 +0000)]
Fix PR2400 by more graceful handling of invalid decls.  Don't try to layout
an invalid struct decl.  Thanks to Martin Doucha for the
isIncompleteArrayType part of this patch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54592 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoExpressive diagnostics-- worth their weight in gold?
Gordon Henriksen [Sat, 9 Aug 2008 19:58:22 +0000 (19:58 +0000)]
Expressive diagnostics-- worth their weight in gold?
(Fixing a spelling error.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54591 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agodo not serialize invalid asts. this fixes bug #2637
Nico Weber [Sat, 9 Aug 2008 18:32:11 +0000 (18:32 +0000)]
do not serialize invalid asts. this fixes bug #2637

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54590 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoChange 'Wchar' to 'WChar' casing, for consistency.
Argyrios Kyrtzidis [Sat, 9 Aug 2008 17:20:01 +0000 (17:20 +0000)]
Change 'Wchar' to 'WChar' casing, for consistency.
No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54588 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoHandle WChar inside BuiltinType::getName().
Argyrios Kyrtzidis [Sat, 9 Aug 2008 17:11:33 +0000 (17:11 +0000)]
Handle WChar inside BuiltinType::getName().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54587 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplement support for the 'wchar_t' C++ type.
Argyrios Kyrtzidis [Sat, 9 Aug 2008 16:51:54 +0000 (16:51 +0000)]
Implement support for the 'wchar_t' C++ type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54585 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix Sema::MergeVarDecl() to better handle type compatibility. The previous code was...
Steve Naroff [Sat, 9 Aug 2008 16:04:40 +0000 (16:04 +0000)]
Fix Sema::MergeVarDecl() to better handle type compatibility. The previous code was trying to handle arrays specially (which didn't work for pointers to array). Removed local helper function areEquivalentArrayTypes(), replacing it's use with the more general ASTContext::typesAreCompatible() predicate.

Even though the test case this fixes is in "tentative-decls.c", this bug didn't have anything to do with our handling of tentative definitions (which is what I first expected). In any event, this is a tricky area of the spec.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54583 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoWhen in C++, invoke ASTConsumer::HandleTagDeclDefinition in Sema::ActOnFinishCXXClassDef,
Argyrios Kyrtzidis [Sat, 9 Aug 2008 00:58:37 +0000 (00:58 +0000)]
When in C++, invoke ASTConsumer::HandleTagDeclDefinition in Sema::ActOnFinishCXXClassDef,
at which point the C++ struct/class/union is fully parsed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54569 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded FIXME.
Ted Kremenek [Sat, 9 Aug 2008 00:41:45 +0000 (00:41 +0000)]
Added FIXME.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54568 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPassing right brace location to ActOnFinishCXXClassDef is redundant, since it gets...
Argyrios Kyrtzidis [Sat, 9 Aug 2008 00:39:29 +0000 (00:39 +0000)]
Passing right brace location to ActOnFinishCXXClassDef is redundant, since it gets passed to ActOnFinishCXXMemberSpecification too.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54567 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdated checker build.
Ted Kremenek [Sat, 9 Aug 2008 00:22:35 +0000 (00:22 +0000)]
Updated checker build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54566 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDon't use Expr::isIntegerConstantExpr just to check if a pointer value is initialize...
Ted Kremenek [Sat, 9 Aug 2008 00:05:14 +0000 (00:05 +0000)]
Don't use Expr::isIntegerConstantExpr just to check if a pointer value is initialize to NULL.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54563 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdated checker build.
Ted Kremenek [Fri, 8 Aug 2008 22:25:17 +0000 (22:25 +0000)]
Updated checker build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54562 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake RecordDecl::Destroy() public.
Argyrios Kyrtzidis [Fri, 8 Aug 2008 22:25:06 +0000 (22:25 +0000)]
Make RecordDecl::Destroy() public.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54561 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoHave scan-build/ccc-analyzer generate preprocessed .i/.mi files for sources that...
Ted Kremenek [Fri, 8 Aug 2008 20:46:42 +0000 (20:46 +0000)]
Have scan-build/ccc-analyzer generate preprocessed .i/.mi files for sources that clang crashes on.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54552 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoupdate to make IRBuilder API change.
Chris Lattner [Fri, 8 Aug 2008 19:57:58 +0000 (19:57 +0000)]
update to make IRBuilder API change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54548 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix issues with C "tentative" definitions.
Steve Naroff [Fri, 8 Aug 2008 17:50:35 +0000 (17:50 +0000)]
Fix issues with C "tentative" definitions.

- Move checking from MergeVarDecl->FinializeDeclaratorGroup. Since MergeVarDecl is called before the initializer is attacted, it can't be done there (this removes a long standing FIXME).
- Add Sema::isTentativeDefinition() and Sema::CheckForFileScopedRedefinitions().
- Remove FIXME's and touch-up test case.

Still some more work to do (forthcoming)...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54533 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoChange line endings, CRLF -> LF.
Argyrios Kyrtzidis [Fri, 8 Aug 2008 16:58:19 +0000 (16:58 +0000)]
Change line endings, CRLF -> LF.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54530 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRevert my previous commit where I replaced cast<> with static_cast<> in CXXFieldDecl...
Argyrios Kyrtzidis [Fri, 8 Aug 2008 16:48:14 +0000 (16:48 +0000)]
Revert my previous commit where I replaced cast<> with static_cast<> in CXXFieldDecl::getMember().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54529 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDestroy and delete the FieldDecl members of a RecordDecl.
Argyrios Kyrtzidis [Fri, 8 Aug 2008 14:08:55 +0000 (14:08 +0000)]
Destroy and delete the FieldDecl members of a RecordDecl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54527 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd iterator access to field members for RecordDecl.
Argyrios Kyrtzidis [Fri, 8 Aug 2008 13:54:06 +0000 (13:54 +0000)]
Add iterator access to field members for RecordDecl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54526 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse static_cast<> instead of cast<> for CXXFieldDecl::getMember().
Argyrios Kyrtzidis [Fri, 8 Aug 2008 13:26:45 +0000 (13:26 +0000)]
Use static_cast<> instead of cast<> for CXXFieldDecl::getMember().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54525 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUnbreak SerializationTest and the Rewriter by doing the work in HandleTranslationUnit...
Ted Kremenek [Fri, 8 Aug 2008 04:15:52 +0000 (04:15 +0000)]
Unbreak SerializationTest and the Rewriter by doing the work in HandleTranslationUnit instead of the destructor.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54513 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoParseAST now never releases the passed ASTConsumer. This is the responsibility of...
Ted Kremenek [Fri, 8 Aug 2008 02:46:37 +0000 (02:46 +0000)]
ParseAST now never releases the passed ASTConsumer.  This is the responsibility of the client.
The motivation is that clients may either:

(a) query the ASTConsumer object after AST parsing to collect data/etc.
(b) reuse the ASTConsumer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54502 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse DeclStmt::decl_iterator instead of walking the getNextDeclarator() chain.
Ted Kremenek [Fri, 8 Aug 2008 02:45:18 +0000 (02:45 +0000)]
Use DeclStmt::decl_iterator instead of walking the getNextDeclarator() chain.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54501 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded AssumeSymGT, AssumeSymGE, AssumeSymLT, AssumeSymLE to add some minor improvemen...
Ted Kremenek [Thu, 7 Aug 2008 22:30:22 +0000 (22:30 +0000)]
Added AssumeSymGT, AssumeSymGE, AssumeSymLT, AssumeSymLE to add some minor improvements to path-sensitivity.  Right now we basically treat 'x > y' and 'x < y' as implying 'x != y', but this restriction will only inevitably apply to our must rudimentary value tracking component (we'll implement more advanced value reasoning later).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54493 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDon't flag any dead stores for variables marked unused.
Ted Kremenek [Thu, 7 Aug 2008 22:28:30 +0000 (22:28 +0000)]
Don't flag any dead stores for variables marked unused.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54492 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoClear DeclSpec::AsmLabel in DeclSpec::clear().
Argyrios Kyrtzidis [Thu, 7 Aug 2008 20:58:03 +0000 (20:58 +0000)]
Clear DeclSpec::AsmLabel in DeclSpec::clear().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54489 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd CXXRecordType class.
Argyrios Kyrtzidis [Thu, 7 Aug 2008 20:55:28 +0000 (20:55 +0000)]
Add CXXRecordType class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54488 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix 80 col violation
Ted Kremenek [Thu, 7 Aug 2008 19:48:19 +0000 (19:48 +0000)]
Fix 80 col violation

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54487 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoParseAST now conditionally deletes the passed ASTConsumer.
Ted Kremenek [Thu, 7 Aug 2008 19:47:41 +0000 (19:47 +0000)]
ParseAST now conditionally deletes the passed ASTConsumer.
ModuleBuilder now performs llvmgen in HandleTranslationUnit.

This patch follows from the discussion on the following thread on cfe-commits:

http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20080804/006849.html

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54486 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove unneeded #includes.
Ted Kremenek [Thu, 7 Aug 2008 18:14:04 +0000 (18:14 +0000)]
Remove unneeded #includes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54478 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMicro cleanups.
Ted Kremenek [Thu, 7 Aug 2008 18:13:12 +0000 (18:13 +0000)]
Micro cleanups.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54477 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix by Jordan Breeding: when scanning for prior runs, scan-build should ignore files...
Ted Kremenek [Thu, 7 Aug 2008 17:57:34 +0000 (17:57 +0000)]
Fix by Jordan Breeding: when scanning for prior runs, scan-build should ignore files that are not directories.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54473 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix --html-diags in driver by delaying the construction of an HTMLDiagnosticClient...
Ted Kremenek [Thu, 7 Aug 2008 17:49:57 +0000 (17:49 +0000)]
Fix --html-diags in driver by delaying the construction of an HTMLDiagnosticClient until after we have created the Preprocessor object.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54472 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd test for nested enum redefinition.
Daniel Dunbar [Thu, 7 Aug 2008 16:22:45 +0000 (16:22 +0000)]
Add test for nested enum redefinition.
 - <rdar://problem/6093889>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54470 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoLet LLVMCodeGenWriter forward all the methods defined in ASTConsumer, to
Matthijs Kooijman [Thu, 7 Aug 2008 16:04:15 +0000 (16:04 +0000)]
Let LLVMCodeGenWriter forward all the methods defined in ASTConsumer, to
prevent unexpected surprises later on.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54469 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSema::ActOnEnumBody(): handle nested enum redefinitions.
Steve Naroff [Thu, 7 Aug 2008 14:08:16 +0000 (14:08 +0000)]
Sema::ActOnEnumBody(): handle nested enum redefinitions.
Fixes <rdar://problem/6093889> Nested enum redefinition crashes sema.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54463 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoattribute "unused" also applies to functions.
Ted Kremenek [Thu, 7 Aug 2008 01:02:05 +0000 (01:02 +0000)]
attribute "unused" also applies to functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54440 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix <rdar://problem/6125909>.
Ted Kremenek [Thu, 7 Aug 2008 00:49:01 +0000 (00:49 +0000)]
Fix <rdar://problem/6125909>.
Unify logic in return-of-stack-check (Sema) for casts and implicit casts.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54439 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdated checker build.
Ted Kremenek [Wed, 6 Aug 2008 23:57:27 +0000 (23:57 +0000)]
Updated checker build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54437 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoEnhanced test case.
Ted Kremenek [Wed, 6 Aug 2008 23:26:31 +0000 (23:26 +0000)]
Enhanced test case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54436 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoCleanup some processing with DeclStmt, and gradually start using the internal BumpPtr...
Ted Kremenek [Wed, 6 Aug 2008 23:20:50 +0000 (23:20 +0000)]
Cleanup some processing with DeclStmt, and gradually start using the internal BumpPtrAllocator to allocator more of CFG's data structures.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54433 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoignore build dirs
Nuno Lopes [Wed, 6 Aug 2008 23:09:43 +0000 (23:09 +0000)]
ignore build dirs

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54431 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAlways construct the BumpPtrAllocator used by CFG as an instance variable.
Ted Kremenek [Wed, 6 Aug 2008 22:22:32 +0000 (22:22 +0000)]
Always construct the BumpPtrAllocator used by CFG as an instance variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54429 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix serialization of DeclStmt.
Ted Kremenek [Wed, 6 Aug 2008 22:17:30 +0000 (22:17 +0000)]
Fix serialization of DeclStmt.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54428 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded VCProj file for libDriver.
Ted Kremenek [Wed, 6 Aug 2008 20:50:20 +0000 (20:50 +0000)]
Added VCProj file for libDriver.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54423 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd svn:ignore on test/Sema/Output
Daniel Dunbar [Wed, 6 Aug 2008 16:08:49 +0000 (16:08 +0000)]
Add svn:ignore on test/Sema/Output

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54414 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoReplace old bitfield test.
Daniel Dunbar [Wed, 6 Aug 2008 16:07:39 +0000 (16:07 +0000)]
Replace old bitfield test.

 - Change hardcoded assembly instructions to a use of 'opt' (still
   waiting for someone to yell at me for this).

 - Add some cases to cover behavior fixed by previous commit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54413 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix for <rdar://problem/6113807> clang ObjC rewriter: crash rewriting attached file
Steve Naroff [Wed, 6 Aug 2008 15:58:23 +0000 (15:58 +0000)]
Fix for <rdar://problem/6113807> clang ObjC rewriter: crash rewriting attached file

While this is a safe rewriter fix, there is still a need for some discussion (see report for more info).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54412 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoReorder serialization methods.
Ted Kremenek [Wed, 6 Aug 2008 15:50:59 +0000 (15:50 +0000)]
Reorder serialization methods.
When serializing DeclStmt, encode a bit indicating whether or not the DeclStmt owns the Decl.  This is an interim solution.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54410 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix EmitNullInitializationToLValue for bitfield lvalues.
Daniel Dunbar [Wed, 6 Aug 2008 05:32:55 +0000 (05:32 +0000)]
Fix EmitNullInitializationToLValue for bitfield lvalues.
 - PR2643

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54397 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix bitfield accesses which straddle the boundary of the underlying
Daniel Dunbar [Wed, 6 Aug 2008 05:08:45 +0000 (05:08 +0000)]
Fix bitfield accesses which straddle the boundary of the underlying
type.

 - This generates somewhat less optimal code than before but this is
   not hard to rectify once stable (at the cost of slightly more
   complex code).

 - This currently always uses little-endian ordering of the bitfield.

 - This breaks the CodeGen/bitfield.c test because it was grepping for
   hard-coded assembly instructions. Will fix once a better test case
   is constructed (hard to do without execution).

 - This fixes SingleSource/UnitTests/2006-01-23-InitializedBitField.c
   and Regression/C/PR1386.c from the test suite.

 - <rdar://problem/6085090>, <rdar://problem/6094169>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54395 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdate xcode project to new libDriver layout.
Ted Kremenek [Wed, 6 Aug 2008 02:55:08 +0000 (02:55 +0000)]
Update xcode project to new libDriver layout.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54393 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix CodeGen of pointer arithmetic in compound assignment statements.
Daniel Dunbar [Wed, 6 Aug 2008 02:00:38 +0000 (02:00 +0000)]
Fix CodeGen of pointer arithmetic in compound assignment statements.

 - Changed EmitSub to work on all cases (arithmetic, ptr - int, ptr -
   ptr) so that implementation matches that of other operators.

 - Modify EmitCompoundAssign to compute and perform the appropriate
   casts of left, right, and result types for the assorted pointer
   arithmetic cases.

 - Fix EmitSub (ptr - int) case to negate the rhs *after*
   extension. This is critical when the rhs is unsigned (and needs
   extension).

 - This fixes cfrac.

 - <rdr://6115726>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54392 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplement GNU asm-label extension support in CodeGen. This fixes
Daniel Dunbar [Wed, 6 Aug 2008 00:03:29 +0000 (00:03 +0000)]
Implement GNU asm-label extension support in CodeGen. This fixes
scimark2 on Darwin.

 - Added Sema support for asm-label on variables, which I forgot before.

 - Update CodeGen to use GlobalDeclMap to determine if static Decls
   require emission (instead of LLVM module name lookup). Important
   since the Decl name and the LLVM module name can differ.

 - <rdar://problem/6116729>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54388 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoadd a libDriver, for now only move the text diangostics stuff from Driver to there
Nico Weber [Tue, 5 Aug 2008 23:33:20 +0000 (23:33 +0000)]
add a libDriver, for now only move the text diangostics stuff from Driver to there

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54383 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoChange CodeGen of global decls to key off of the name (instead of
Daniel Dunbar [Tue, 5 Aug 2008 23:31:02 +0000 (23:31 +0000)]
Change CodeGen of global decls to key off of the name (instead of
  having multiple bindings from all the possible decls which
  conceptually map to the same global).

 - This eliminates CodeGen depending on the LLVM module for name
   lookup.

 - This also eliminates the need for ReplaceMapValuesWith (hurrah).

 - This handles lookups for FunctionDecls correctly in the presence of
   aliases, this was previously broken.

 - WIP: Can still clean up & unify variable and function emission.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54382 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoremove spaces at eol to test commit access
Nico Weber [Tue, 5 Aug 2008 23:15:29 +0000 (23:15 +0000)]
remove spaces at eol to test commit access

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54381 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd missing "classof" methods to NonNullAttr, fixing a heisencrash.
Ted Kremenek [Tue, 5 Aug 2008 21:29:52 +0000 (21:29 +0000)]
Add missing "classof" methods to NonNullAttr, fixing a heisencrash.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54373 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded decl_iterator to DeclStmt to provide an abstract interface to iterate over...
Ted Kremenek [Tue, 5 Aug 2008 20:46:55 +0000 (20:46 +0000)]
Added decl_iterator to DeclStmt to provide an abstract interface to iterate over the ScopedDecls of a DeclStmt.
Updated a few clients of DeclStmt::getNextDeclarator() to use decl_iterator instead.  Will update other clients after additional testing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54368 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFinish fixing <rdar://problem/5929344> clang ObjC rewriter: "extern int __CFConstantS...
Steve Naroff [Tue, 5 Aug 2008 20:04:48 +0000 (20:04 +0000)]
Finish fixing <rdar://problem/5929344> clang ObjC rewriter: "extern int __CFConstantStringClassReference[];" should be extern "C"

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54367 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove excess #include.
Ted Kremenek [Tue, 5 Aug 2008 19:56:24 +0000 (19:56 +0000)]
Remove excess #include.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54366 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agofix crash when printing diagnostics with tokens that span through more than one line
Nuno Lopes [Tue, 5 Aug 2008 19:40:20 +0000 (19:40 +0000)]
fix crash when printing diagnostics with tokens that span through more than one line

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54365 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRefactored driver logic for CodeGen into LLVMCodeGenWriter. This ASTConsumer layers...
Ted Kremenek [Tue, 5 Aug 2008 18:50:11 +0000 (18:50 +0000)]
Refactored driver logic for CodeGen into LLVMCodeGenWriter.  This ASTConsumer layers on top of LLVMCodeGen (another existing ASTConsumer) to emit bitcode files to disk.  This layering takes this logic out of clang.cpp and puts it directly into the ASTConsumer interface.  The benefit is that now --emit-llvm works with both serialized ASTs and regular source files.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54364 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix <rdar://problem/6108119> clang ObjC rewriter: if no newline at end of input file...
Steve Naroff [Tue, 5 Aug 2008 18:47:23 +0000 (18:47 +0000)]
Fix <rdar://problem/6108119> clang ObjC rewriter: if no newline at end of input file, rewriter inserts #define on same line as closing brace

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54363 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMove AsmLabel into Declarator instead of just a parameter to
Daniel Dunbar [Tue, 5 Aug 2008 16:28:08 +0000 (16:28 +0000)]
Move AsmLabel into Declarator instead of just a parameter to
  ActOnDeclarator.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54353 91177308-0d34-0410-b5e6-96231b3b80d8