Ted Kremenek
093045b011
Updated latest checker build.
...
llvm-svn: 54808
2008-08-14 23:35:31 +00:00
Ted Kremenek
c7138bb0a7
Default initialize only pointers and integer types (for now).
...
llvm-svn: 54798
2008-08-14 22:11:13 +00:00
Daniel Dunbar
12c9ddced1
Change Parser & Sema to use interned "super" for comparions.
...
- Added as private members for each because it is not clear where to
put the common definition. Perhaps the IdentifierInfos all of these
"pseudo-keywords" should be collected into one place (this would
KnownFunctionIDs and Objective-C property IDs, for example).
Remove Token::isNamedIdentifier.
- There isn't a good reason to use strcmp when we have interned
strings, and there isn't a good reason to encourage clients to do
so.
llvm-svn: 54794
2008-08-14 22:04:54 +00:00
Ted Kremenek
db7dd9cd15
Migrated retain/release checker to use the Generic Data Map in GRState (instead
...
of using CheckerState).
Removed CheckerState from GRState.
Added class GRStateRef which wraps GRState* and GRStateManager*. This is handy
for generating new states with a single handle.
Added member template set/get functions to GRStateRef/GRState/GRStateManager for
accessing the Generic Data Map.
llvm-svn: 54788
2008-08-14 21:16:54 +00:00
Steve Naroff
40471b3ba8
Fix ASTContext::getObjCEncodingForType() to limit the type info for structure bodies (mimics gcc's adhoc rules).
...
This fixes <rdar://problem/6140902> clang ObjC rewriter: If a class contains a struct ivar with a lot of members, ...
llvm-svn: 54777
2008-08-14 15:00:38 +00:00
Chris Lattner
89d6c9f698
Make diagnostics relating to the callee hilight just the callee
...
and put the caret on the ()'s. e.g. produces:
t.c:13:9: error: called object is not a function or function pointer
((B)a)();
~~~~~~^
instead of:
t.c:13:3: error: called object is not a function or function pointer
((B)a)();
^~~~~~~~
llvm-svn: 54775
2008-08-14 04:33:24 +00:00
Ted Kremenek
e4d923383a
Fix typo.
...
llvm-svn: 54774
2008-08-14 03:45:07 +00:00
Daniel Dunbar
7da1b82f56
Update some isIntegerConstantExpr uses to use
...
getIntegerConstantExprValue where appropriate.
llvm-svn: 54771
2008-08-13 23:47:13 +00:00
Nuno Lopes
cb46c144bc
make sure the size of constant arrays is respected
...
llvm-svn: 54769
2008-08-13 23:28:57 +00:00
Daniel Dunbar
c4baa06d15
Add GetAddrOfConstantCString method
...
- Returns addr of constant for argument + '\0'.
- I couldn't think of a better name.
- Move appropriate users of GetAddrOfConstantString to this.
Rename getStringForStringLiteral to GetStringForStringLiteral.
Add GetAddrOfConstantStringFromLiteral
- This combines GetAddrOfConstantString and
GetStringForStringLiteral. This method can be, but is not yet, more
efficient.
Change GetAddrOfConstantString to not add terminating '\0'
- <rdar://problem/6140956>
llvm-svn: 54768
2008-08-13 23:20:05 +00:00
Ted Kremenek
16306107cf
Renamed GRState::CheckerStatePrinter to GRState::Printer.
...
Updated checker state printer interface to allow transfer functions to return an arbitrary number of GRState::Printers.
llvm-svn: 54762
2008-08-13 21:24:49 +00:00
Ted Kremenek
caefa24c76
Update Xcode project.
...
llvm-svn: 54759
2008-08-13 20:59:32 +00:00
Ted Kremenek
1cac74bf0f
Update Xcode project.
...
llvm-svn: 54755
2008-08-13 20:43:54 +00:00
Steve Naroff
eb03dace87
Sema::ActOnStartProtocolInterface(): Make sure the protocol decl has a valid start location.
...
The following case resulted in an invalid start location:
// start location not being set for ObjCProtocolDecl AST (when a forward reference is in scope).
@protocol Buggy;
@protocol Buggy
@optional
- whatever;
@end
llvm-svn: 54740
2008-08-13 16:39:22 +00:00
Ted Kremenek
703a64c38d
Update VS project file.
...
llvm-svn: 54723
2008-08-13 04:45:09 +00:00
Ted Kremenek
0e7d96c370
Rename ValueState.h -> GRState.h
...
Rename ValueState.cpp -> GRState.cpp
llvm-svn: 54722
2008-08-13 04:28:02 +00:00
Ted Kremenek
5ab5a1b578
Rename ValueState -> GRState.
...
Rename ValueStateManager -> GRStateManager.
llvm-svn: 54721
2008-08-13 04:27:00 +00:00
Ted Kremenek
88f001c4e3
Updated latest checker build.
...
llvm-svn: 54720
2008-08-13 04:12:49 +00:00
Ted Kremenek
ea6fa77ccc
Added test case.
...
llvm-svn: 54717
2008-08-13 03:55:18 +00:00
Ted Kremenek
dccd9883c4
Initialize tracked local variables to undefined.
...
llvm-svn: 54716
2008-08-13 03:28:04 +00:00
Daniel Dunbar
b036db8e66
Implement Obj-C protocol metadata generation for NeXT.
...
- Near complete, only properties are missing.
llvm-svn: 54715
2008-08-13 03:21:16 +00:00
Ted Kremenek
3f91f037a7
Fix memory leak found by Sam Bishop: delete WList in the dstor of GRCoreEngineImpl.
...
llvm-svn: 54714
2008-08-13 03:10:52 +00:00
Daniel Dunbar
89da6ad1db
Change ObjCRuntime GenerateProtocol[Ref] methods to take
...
ObjCProtocolDecl directly.
Implement CodeGen support for forward protocol decls (no-ops are so
nice to implement).
Also moved CGObjCRuntime.h out of CodeGenModule.h
llvm-svn: 54709
2008-08-13 00:59:25 +00:00
Ted Kremenek
27fb019038
Added GenericDataMap as a component of ValueState.
...
llvm-svn: 54704
2008-08-12 21:49:24 +00:00
Ted Kremenek
4c088683c0
Update VS project files.
...
llvm-svn: 54701
2008-08-12 21:05:43 +00:00
Ted Kremenek
9551ab6c8c
More cleanups. Add missing #include.
...
llvm-svn: 54699
2008-08-12 20:41:56 +00:00
Ted Kremenek
3f13f598ce
More summary generation refactoring.
...
llvm-svn: 54696
2008-08-12 18:48:50 +00:00
Ted Kremenek
050b91cd28
Add variadic addInstMethSummary() and refactored addPanicSummary() to use this method. (code reduction).
...
Misc. cleanups.
llvm-svn: 54694
2008-08-12 18:30:56 +00:00
Ted Kremenek
b49bb5a050
Update Xcode project.
...
llvm-svn: 54693
2008-08-12 18:29:20 +00:00
Daniel Dunbar
7bd00bda05
Emit OBJC_MODULE_INFO and OBJC_SYMBOLS metadata
...
- Matches llvm-gcc and seem to be expected by otool.
llvm-svn: 54669
2008-08-12 06:48:42 +00:00
Daniel Dunbar
d627c85f43
Drop Sender from GenerateMessageSend*
...
- Was unused and generated a unnecessary load of self
(missed file)
llvm-svn: 54668
2008-08-12 05:40:10 +00:00
Daniel Dunbar
5d71559c01
Drop Sender from GenerateMessageSend*
...
- Was unused and generated a unnecessary load of self
Update NeXT runtime to get proper object & selector types from
ASTContext.
llvm-svn: 54667
2008-08-12 05:28:47 +00:00
Daniel Dunbar
6630e10ccc
Protocol related tweaks
...
- Implement type conversion of ObjCQualifiedIdType
- Wire @protocol(...) to GenerateProtocolRef in ScalarExprEmitter
llvm-svn: 54666
2008-08-12 05:08:18 +00:00
Daniel Dunbar
bceb904f91
Add @selector(...) codegen support.
...
llvm-svn: 54665
2008-08-12 03:55:34 +00:00
Daniel Dunbar
cb515c8b0a
Add NeXT support for (simple) message sends.
...
llvm-svn: 54664
2008-08-12 03:39:23 +00:00
Mike Stump
b9d50b23a8
Unbreak clang install.
...
llvm-svn: 54663
2008-08-12 00:32:59 +00:00
Daniel Dunbar
2258aa0f27
Move some ObjC preprocessor definitions into
...
InitializePredefinedMacros().
- Also now properly wired to -fobjc-gc, -fnext-runtime.
llvm-svn: 54661
2008-08-12 00:21:46 +00:00
Daniel Dunbar
8b8683f9f6
Add ObjC constant string support for NeXT.
...
Changed CGObjCRuntime::GenerateConstantString interface to take
std::string instead of char* and size.
Change ObjC functions which call on GenerateConstantString to bitcast
result to appropriate type.
llvm-svn: 54659
2008-08-12 00:12:39 +00:00
Mike Stump
52f0260582
Fix compilation warning with help from David Chisnall.
...
llvm-svn: 54654
2008-08-11 23:16:18 +00:00
Chris Lattner
7b18e35113
remove obsolete comment.
...
llvm-svn: 54652
2008-08-11 22:03:07 +00:00
Daniel Dunbar
3ad53483fb
Add LangOptions::NeXTRuntime.
...
- Wired to -fnext-runtime and -fgnu-runtime options.
- Defaults to GNU, no autoselection for NeXT.
Emit NeXT OBJC_IMAGE_INFO marker.
llvm-svn: 54651
2008-08-11 21:35:06 +00:00
Daniel Dunbar
2de4b5e2fc
Add test case for -fexceptions
...
llvm-svn: 54647
2008-08-11 18:40:47 +00:00
Daniel Dunbar
8d480594cf
Change CodeGenModule to only create ObjC runtime for ObjC files
...
- Changed CodeGenModule::getObjCRuntime to return reference.
- Added CodeGenModule::hasObjCRuntime predicate.
llvm-svn: 54645
2008-08-11 18:12:00 +00:00
Daniel Dunbar
fb3043d627
Add -fexceptions to Driver
...
- Maps to LangOptions.Exceptions
- Currently always off, should autoselect based on language.
Update CodeGen to set unwind attribute on functions definitions based
on LangOptions.Exceptions.
- Still need to set attributes appropriately on calls.
llvm-svn: 54643
2008-08-11 17:36:14 +00:00
Daniel Dunbar
48595de697
Update for IRBuilder template change (update LLVM!)
...
llvm-svn: 54642
2008-08-11 16:50:21 +00:00
Daniel Dunbar
56fdb6ae69
More #include cleaning
...
- Kill unnecessary #includes in .cpp files. This is an automatic
sweep so some things removed are actually used, but happen to be
included by a previous header. I tried to get rid of the obvious
examples and this was the easiest way to trim the #includes in one
fell swoop.
- We now return to regularly scheduled development.
llvm-svn: 54632
2008-08-11 06:23:49 +00:00
Daniel Dunbar
6e8aa537f8
More #include cleaning
...
- Drop {Decl.h,DeclObjC.h,IdentifierTable.h} from Expr.h
- Moved Sema::getCurMethodDecl() out of line (dependent on
ObjCMethodDecl via dyn_cast).
llvm-svn: 54629
2008-08-11 05:35:13 +00:00
Daniel Dunbar
ad319a73f2
More #include cleaning
...
- Remove internal uses of AST.h
llvm-svn: 54628
2008-08-11 05:00:27 +00:00
Daniel Dunbar
221fa94e40
More #include cleaning
...
- Drop Expr.h,RecordLayout.h from ASTContext.h (for DeclBase.h and
SourceLocation.h)
- Move ASTContext constructor into implementation
llvm-svn: 54627
2008-08-11 04:54:23 +00:00
Daniel Dunbar
c74b5cc2bc
More #include cleaning
...
- Drop Diagnostic.h from DeclSpec.h, move utility Diag methods into
implementation .cpp
llvm-svn: 54626
2008-08-11 03:45:03 +00:00
Daniel Dunbar
34fb67272c
Minor #include cleaning
...
- Drop TokenKinds.h from Action.h
- Move DeclSpec.h from Sema.h into individual Sema .cpp files
llvm-svn: 54625
2008-08-11 03:27:53 +00:00
Daniel Dunbar
303e2c2f1f
Add dummy Mac Objective-C runtime interface.
...
- Not currently accessible and completely non-functional.
llvm-svn: 54624
2008-08-11 02:45:11 +00:00
Nuno Lopes
d83be33cc0
fix linking with .so files specified in cmd line (this fixes some libtool usages)
...
llvm-svn: 54623
2008-08-10 22:17:57 +00:00
Nuno Lopes
c14bcffda6
pass -R arg to linker
...
llvm-svn: 54622
2008-08-10 21:58:01 +00:00
Daniel Dunbar
6dfdf8c97a
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!
llvm-svn: 54621
2008-08-10 20:25:57 +00:00
Nico Weber
4c3116437c
* 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
llvm-svn: 54620
2008-08-10 19:59:06 +00:00
Steve Naroff
cb1e06e8fd
Forgot to modify LAST_EXPR (thanks Nuno).
...
llvm-svn: 54619
2008-08-10 19:28:37 +00:00
Nico Weber
e4919cc2bf
Do not crash with -serialize.
...
This happened because seralization was done in the constructor, and at that time the TranslationUnit is no longer valid.
llvm-svn: 54618
2008-08-10 19:20:05 +00:00
Steve Naroff
0d7c6dbae8
Cleanup ObjCSuperRefExpr (remove last usage and AST node:-).
...
llvm-svn: 54617
2008-08-10 19:10:41 +00:00
Anders Carlsson
d361a7df78
Remove the old evaluator code.
...
llvm-svn: 54615
2008-08-10 17:03:01 +00:00
Steve Naroff
eaf5853004
InitListChecker::CheckListElementTypes(): Check for function types and issue an appropriate diagnostic.
...
llvm-svn: 54614
2008-08-10 16:05:48 +00:00
Steve Naroff
63ebb3cd3e
Cleanup from yesterday...make isTentativeDefinition() a static helper function (no need for it to be part of the Sema API).
...
llvm-svn: 54613
2008-08-10 15:28:06 +00:00
Steve Naroff
84e37356d6
Sema::CheckForFileScopedRedefinitions(): Make sure tentative decls of incomplete array types are completed (and diagnosed properly).
...
llvm-svn: 54612
2008-08-10 15:20:13 +00:00
Argyrios Kyrtzidis
b3dd1e0889
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.
llvm-svn: 54611
2008-08-10 13:15:22 +00:00
Daniel Dunbar
07bb087ac1
Fix crash during initialization of a bitfield which followed a zero
...
length element.
Fix some 80-col violations.
llvm-svn: 54610
2008-08-10 07:00:24 +00:00
Daniel Dunbar
63fed4f35e
Update ShuffeVectorExpr::getShuffleMaskIdx to use
...
getIntegerConstantExprValue.
Tweak getIntegerConstantExprValue to suppress warning in
Release-Asserts mode.
llvm-svn: 54609
2008-08-10 06:58:01 +00:00
Daniel Dunbar
9a8d07321a
Bug fix, inline string literals were getting an extra '\0'.
...
llvm-svn: 54608
2008-08-10 06:27:44 +00:00
Chris Lattner
7ab824e43d
tighten up some code and some wording on diagnostics.
...
llvm-svn: 54607
2008-08-10 02:05:13 +00:00
Chris Lattner
28b4294ccf
wrap some long diagnostics, make 'initializer is not a constant' diagnostic
...
a bit more clear (rdar://5646070)
llvm-svn: 54606
2008-08-10 01:58:45 +00:00
Chris Lattner
6307f19726
rename PreDefinedExpr -> PredefinedExpr
...
llvm-svn: 54605
2008-08-10 01:53:14 +00:00
Argyrios Kyrtzidis
8a23f55186
Add some C++ Decl statistics.
...
llvm-svn: 54604
2008-08-10 01:47:31 +00:00
Eli Friedman
a3b2f6f2af
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.
llvm-svn: 54601
2008-08-09 23:45:45 +00:00
Eli Friedman
121ba0c4d3
Fix for PR2631; make va_arg work correctly on x86-64.
...
llvm-svn: 54600
2008-08-09 23:32:40 +00:00
Nico Weber
53c362e34e
80 cols
...
llvm-svn: 54599
2008-08-09 23:08:17 +00:00
Eli Friedman
5ce8cc7554
Remove the ICE pointer cast hack; the issue this was working around is
...
now fixed in an alternate way.
llvm-svn: 54598
2008-08-09 22:24:21 +00:00
Eli Friedman
5cf85cc977
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.
llvm-svn: 54597
2008-08-09 22:21:56 +00:00
Nico Weber
582be4db34
add assert, use make_pair() instead of pair constructor
...
llvm-svn: 54596
2008-08-09 22:13:42 +00:00
Argyrios Kyrtzidis
379d2edc29
Mention 'wchar_t' at the C++ status page.
...
llvm-svn: 54595
2008-08-09 22:12:36 +00:00
Nico Weber
6975aaf3c2
fix spello
...
llvm-svn: 54594
2008-08-09 22:12:22 +00:00
Argyrios Kyrtzidis
dfaf82ac2d
Handle BuiltinType::WChar inside CodeGenTypes::ConvertNewType().
...
llvm-svn: 54593
2008-08-09 22:01:55 +00:00
Chris Lattner
572100b648
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.
llvm-svn: 54592
2008-08-09 21:35:13 +00:00
Gordon Henriksen
04c50bd7e0
Expressive diagnostics-- worth their weight in gold?
...
(Fixing a spelling error.)
llvm-svn: 54591
2008-08-09 19:58:22 +00:00
Nico Weber
7094a5bfa8
do not serialize invalid asts. this fixes bug #2637
...
llvm-svn: 54590
2008-08-09 18:32:11 +00:00
Argyrios Kyrtzidis
cbad725bf4
Change 'Wchar' to 'WChar' casing, for consistency.
...
No functionality change.
llvm-svn: 54588
2008-08-09 17:20:01 +00:00
Argyrios Kyrtzidis
d8f2f5f1b7
Handle WChar inside BuiltinType::getName().
...
llvm-svn: 54587
2008-08-09 17:11:33 +00:00
Argyrios Kyrtzidis
40e9e4828f
Implement support for the 'wchar_t' C++ type.
...
llvm-svn: 54585
2008-08-09 16:51:54 +00:00
Steve Naroff
239255d2a6
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.
llvm-svn: 54583
2008-08-09 16:04:40 +00:00
Argyrios Kyrtzidis
2f67f37daf
When in C++, invoke ASTConsumer::HandleTagDeclDefinition in Sema::ActOnFinishCXXClassDef,
...
at which point the C++ struct/class/union is fully parsed.
llvm-svn: 54569
2008-08-09 00:58:37 +00:00
Ted Kremenek
4455a9d378
Added FIXME.
...
llvm-svn: 54568
2008-08-09 00:41:45 +00:00
Argyrios Kyrtzidis
5c45c9b063
Passing right brace location to ActOnFinishCXXClassDef is redundant, since it gets passed to ActOnFinishCXXMemberSpecification too.
...
llvm-svn: 54567
2008-08-09 00:39:29 +00:00
Ted Kremenek
8f50b64eef
Updated checker build.
...
llvm-svn: 54566
2008-08-09 00:22:35 +00:00
Ted Kremenek
0216b83d94
Don't use Expr::isIntegerConstantExpr just to check if a pointer value is initialize to NULL.
...
llvm-svn: 54563
2008-08-09 00:05:14 +00:00
Ted Kremenek
1a02630b63
Updated checker build.
...
llvm-svn: 54562
2008-08-08 22:25:17 +00:00
Argyrios Kyrtzidis
69bc5ba67a
Make RecordDecl::Destroy() public.
...
llvm-svn: 54561
2008-08-08 22:25:06 +00:00
Ted Kremenek
994c8e393d
Have scan-build/ccc-analyzer generate preprocessed .i/.mi files for sources that clang crashes on.
...
llvm-svn: 54552
2008-08-08 20:46:42 +00:00
Chris Lattner
c893a67fe3
update to make IRBuilder API change.
...
llvm-svn: 54548
2008-08-08 19:57:58 +00:00
Steve Naroff
5bb8f2264b
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)...
llvm-svn: 54533
2008-08-08 17:50:35 +00:00
Argyrios Kyrtzidis
37088116e7
Change line endings, CRLF -> LF.
...
llvm-svn: 54530
2008-08-08 16:58:19 +00:00
Argyrios Kyrtzidis
7fb867e5e0
Revert my previous commit where I replaced cast<> with static_cast<> in CXXFieldDecl::getMember().
...
llvm-svn: 54529
2008-08-08 16:48:14 +00:00
Argyrios Kyrtzidis
6bd44afc2f
Destroy and delete the FieldDecl members of a RecordDecl.
...
llvm-svn: 54527
2008-08-08 14:08:55 +00:00