summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Implement template instantiation for ClassTemplateSpecializationTypes,Douglas Gregor2009-03-098-188/+339
| | | | | | | | | | | | | | | | | | | | | | such as replacing 'T' in vector<T>. There are a few aspects to this: - Extend TemplateArgument to allow arbitrary expressions (an Expr*), and switch ClassTemplateSpecializationType to store TemplateArguments rather than it's own type-or-expression representation. - ClassTemplateSpecializationType can now store dependent types. In that case, the canonical type is another ClassTemplateSpecializationType (with default template arguments expanded) rather than a declaration (we don't build Decls for dependent types). - Split ActOnClassTemplateId into ActOnClassTemplateId (called from the parser) and CheckClassTemplateId (called from ActOnClassTemplateId and InstantiateType). They're smart enough to handle dependent types, now. llvm-svn: 66509
* retain/release checker: Allow allocations to fail by returning nil.Ted Kremenek2009-03-091-1/+5
| | | | llvm-svn: 66487
* RegionStore::getElementLValue(): Handle the case where the base is a null ↵Ted Kremenek2009-03-091-1/+5
| | | | | | pointer. llvm-svn: 66486
* NeXT: Set alignment on a number of ObjC metadata variables (matching llvm-gcc).Daniel Dunbar2009-03-091-11/+11
| | | | llvm-svn: 66481
* fix PR3768, Clang does -D__STDC_HOSTED__=1, even if -ffreestanding is passed.Chris Lattner2009-03-091-1/+5
| | | | llvm-svn: 66474
* NeXT: Move some routines over to CreateMetadataVar.Daniel Dunbar2009-03-091-169/+81
| | | | | | - No intended functionality change. llvm-svn: 66473
* Fix PR3766, a really nasty silent miscompilation case where we emittedChris Lattner2009-03-091-2/+11
| | | | | | | | | a warning and then threw away the AST. While I'm in there, tighten up the code to actually reject completely bogus cases (sending a message to a struct). We still allow sending a message to an int, which doesn't make sense but GCC allows it and is easy to support. llvm-svn: 66468
* Implement property '.' notation on Factory/Class objects. Parser changes ↵Steve Naroff2009-03-096-30/+112
| | | | | | | | aren't very pretty:-( This fixes <rdar://problem/6496506> Implement class setter/getter for properties. llvm-svn: 66465
* Tweak CreateMetadataVar, take the exact alignment instead of relyingDaniel Dunbar2009-03-091-7/+15
| | | | | | on LLVM TargetData. llvm-svn: 66455
* More fix for bitfield ivar meta-data and code gen accessing it.Fariborz Jahanian2009-03-091-8/+17
| | | | | | | Now, we can actually execute dejagnu test with bitfield ivars in non-fragile abi mode. llvm-svn: 66448
* Teach GRSimpleVals::EvalNE and GRSimplVals::EvalEQ about TypedRegionViews andTed Kremenek2009-03-091-4/+41
| | | | | | | SymbolicRegions. This fixes a serious regression when checking symbolic pointers against null. llvm-svn: 66444
* fix PR3764 - A redefinition of a pre-processor macro failsChris Lattner2009-03-091-3/+8
| | | | | | | Redefinition checking should ignore the leading whitespace and start of line flags on the first token of an expansion. llvm-svn: 66442
* Remove some dead spacing. No functionality change.Ted Kremenek2009-03-091-2/+0
| | | | llvm-svn: 66437
* Fix typo in pref commit.Daniel Dunbar2009-03-091-1/+1
| | | | llvm-svn: 66433
* NeXT: Add CreateMetadataVar utility method to encapsulate creation ofDaniel Dunbar2009-03-091-0/+34
| | | | | | | | Obj-C metadata variables (which generally should be handled the same, although they aren't currently). - No functionality change. llvm-svn: 66432
* Revert r66423, which was not the right fix for this issue.Douglas Gregor2009-03-091-1/+3
| | | | llvm-svn: 66431
* Fix a little FIXME, thanks to SebastianDouglas Gregor2009-03-091-3/+1
| | | | llvm-svn: 66423
* Mark a non-type template parameter invalid if there was a problem with its typeDouglas Gregor2009-03-091-1/+3
| | | | llvm-svn: 66422
* Rename DiagnoseIncompleteType to RequireCompleteType, and update the ↵Douglas Gregor2009-03-097-29/+27
| | | | | | documentation to reflect the fact that we can instantiate templates here llvm-svn: 66421
* Only track integer and pointer values.Zhongxing Xu2009-03-091-2/+5
| | | | llvm-svn: 66419
* Now we do not retrieve untyped regions.Zhongxing Xu2009-03-091-8/+7
| | | | llvm-svn: 66418
* do not warn about -=/=- confusion with macros, thanks to rdogra for a testcase.Chris Lattner2009-03-091-1/+2
| | | | llvm-svn: 66416
* Fix a serious bug in RegionStore: we got the new state with new store fromZhongxing Xu2009-03-091-4/+2
| | | | | | Bind() and BindStruct(), but we returned a state with the old store. llvm-svn: 66409
* Be sure to never create two functions with the same name, instead arrange toMike Stump2009-03-092-45/+52
| | | | | | reuse the prior one. llvm-svn: 66408
* Code refactoring. No functional change.Fariborz Jahanian2009-03-081-25/+17
| | | | llvm-svn: 66391
* implement PR3753, warning about comparisons with a string literal.Chris Lattner2009-03-081-7/+24
| | | | llvm-svn: 66387
* Remove dead clause (we decided not to support protocol qualified 'Class').Steve Naroff2009-03-081-9/+0
| | | | llvm-svn: 66385
* Improvements to private method lookup.Steve Naroff2009-03-082-37/+62
| | | | | | Patch by Jean-Daniel Dupas. Thanks! llvm-svn: 66383
* add \n characters to the scratch buffer *before* returned tokens. Chris Lattner2009-03-081-3/+7
| | | | | | | | This prevents caret diagnostics from the scratch buffer from including other tokens in the scratch buffer that occurred beforei them. llvm-svn: 66375
* generalize the "end of line" checking logic to stop at any \0 at theChris Lattner2009-03-081-3/+1
| | | | | | | | | end of line instead of just the end of buffer. Scratch buffers contain embedded \0's between tokens which are logic line separators. If a normal text buffer contains \0's, it doesn't make a lot of sense to include them in the caret diag output anyway. llvm-svn: 66374
* simplify some logic by making ScratchBuffer handle the application of trailingChris Lattner2009-03-085-60/+49
| | | | | | | \0's to created tokens instead of making all clients do it. No functionality change. llvm-svn: 66373
* refine the "use of unary operator that may be intended as compound ↵Chris Lattner2009-03-081-1/+5
| | | | | | | | | assignment (+=)" warning to only trigger when there is whitespace or something else after the + as suggested by Eli. llvm-svn: 66370
* Make mangling work with anonymous tag types. Doug, please reviewAnders Carlsson2009-03-071-5/+19
| | | | llvm-svn: 66353
* Mangle Objective-C interfaces correctly (where correctly refers to what gcc ↵Anders Carlsson2009-03-071-0/+9
| | | | | | does) llvm-svn: 66349
* Make constant emission for @encode use the common string emission code. Eli Friedman2009-03-071-6/+2
| | | | | | | This is a bit cleaner, and also "fixes" bad code that compares the addresses of the string constants. llvm-svn: 66346
* correct bitfield ivar offset in ivar meta-data.Fariborz Jahanian2009-03-071-12/+27
| | | | | | (objc abi specific). llvm-svn: 66345
* Fix warnings in build on clang-x86_64-freebsd buildbot.Mike Stump2009-03-072-1/+2
| | | | llvm-svn: 66344
* Mangle param names with .arg. only.Sanjiv Gupta2009-03-071-1/+1
| | | | llvm-svn: 66343
* Fixup our uses of various linkages to match how llvm now works. I think ↵Mike Stump2009-03-072-11/+13
| | | | | | | | they are all correct, but an extra set of ObjC eyes would be good. llvm-svn: 66342
* If someone could figure out this is necessary, that would be good.Mike Stump2009-03-071-1/+3
| | | | llvm-svn: 66341
* Fix typo, need parens.Mike Stump2009-03-071-2/+2
| | | | llvm-svn: 66337
* Some struct/class mismatch fixes, to silence MSVC warnings.Sebastian Redl2009-03-072-3/+3
| | | | llvm-svn: 66335
* Don't discard increment/decrement on function pointers. It's kind of Eli Friedman2009-03-071-1/+0
| | | | | | | difficult to come up with a testcase because the code generation for this construct is broken. llvm-svn: 66325
* Remove last FIXME for block literal codegen that I know about and turnMike Stump2009-03-071-2/+1
| | | | | | | | on all the new code by default. There is still plenty of testing to do and issues I'm sure need resolving. Let me know if you find anything. llvm-svn: 66323
* Remove some FIXMEs for block literals that should be close to working.Mike Stump2009-03-072-10/+8
| | | | llvm-svn: 66322
* Back out the patch in r66302, and re-fix it properly. We assume for Eli Friedman2009-03-072-3/+6
| | | | | | | | performance that the type of the returned llvm::Value for an expression matches the converted type of the clang::Expr; mismatches will cause all sorts of errors and silent miscompilations. llvm-svn: 66321
* codegen support for dispose helpers for block literals.Mike Stump2009-03-071-1/+23
| | | | llvm-svn: 66320
* Codegen support for copy helpers for block literals.Mike Stump2009-03-075-51/+127
| | | | llvm-svn: 66319
* Revert my last couple patches until I can get them to not make the tests fail.Ted Kremenek2009-03-072-10/+2
| | | | llvm-svn: 66317
* Teach Diagnostic about Selector.Ted Kremenek2009-03-072-2/+10
| | | | llvm-svn: 66314
OpenPOWER on IntegriCloud