summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST
Commit message (Collapse)AuthorAgeFilesLines
* Add a new 'Pack' argument kind to TemplateArgument. This is not yet used.Anders Carlsson2009-06-152-0/+23
| | | | llvm-svn: 73391
* PR4391: Tweak -ast-print output to generate valid output for edge cases Eli Friedman2009-06-141-1/+7
| | | | | | like "int x = + +3;". llvm-svn: 73356
* PR4351: Add constant evaluation for constructs like "foo == NULL", where Eli Friedman2009-06-141-8/+29
| | | | | | foo has a constant address. llvm-svn: 73321
* Sink the BuiltinInfo object from ASTContext into theChris Lattner2009-06-144-12/+8
| | | | | | | | preprocessor and initialize it early in clang-cc. This ensures that __has_builtin works in all modes, not just when ASTContext is around. llvm-svn: 73319
* move the various builtins stuff from libast to libbasic. ThisChris Lattner2009-06-142-95/+0
| | | | | | fixes a layering violation in lib/Basic/Targets.cpp. llvm-svn: 73318
* prune #includes, Builtins.h/cpp no longer depends on libast.Chris Lattner2009-06-141-2/+0
| | | | llvm-svn: 73317
* move GetBuiltinType from Builtin::Context to ASTContext.Chris Lattner2009-06-142-194/+200
| | | | llvm-svn: 73316
* If a CXXRecordDecl is a class template, the 'this' type should be the ↵Anders Carlsson2009-06-131-1/+6
| | | | | | injected class name type. Fixes pr4383. llvm-svn: 73284
* More work on type parameter packs.Anders Carlsson2009-06-131-1/+3
| | | | llvm-svn: 73281
* Improvements to TemplateArgumentListBuilder to make it work better with ↵Anders Carlsson2009-06-132-0/+25
| | | | | | parameter packs. llvm-svn: 73272
* Keep track of whether a type parameter is actually a type parameter pack.Anders Carlsson2009-06-122-2/+6
| | | | llvm-svn: 73261
* Delete method which is now trivial.Eli Friedman2009-06-081-18/+0
| | | | llvm-svn: 73043
* Don't allow defining a block with a non-prototype type. Remove a Eli Friedman2009-06-081-6/+0
| | | | | | | | | | hack which introduces some strange inconsistencies in compatibility for block pointers. Note that unlike an earlier revision proposed on cfe-commits, this patch still allows declaring block pointers without a prototype. llvm-svn: 73041
* Instantiation support for more Obj-C expressions, string literals, @selector ↵Anders Carlsson2009-06-071-0/+16
| | | | | | and @protocol expressions. llvm-svn: 73036
* Adds synthesize ivars to DeclContext.Fariborz Jahanian2009-06-061-10/+0
| | | | llvm-svn: 73000
* Make ParmVarDecl::getDefaultArg() more robust, it now asserts that the ↵Anders Carlsson2009-06-062-3/+3
| | | | | | argument is not unparsed. Add a new hasDefaultArg() and use it in places where getDefaultArg() was called when the argument was unparsed. llvm-svn: 72984
* Avoid warnings.Mike Stump2009-06-051-0/+1
| | | | llvm-svn: 72976
* Use of DeclContext for objc's ivars. No functionalityFariborz Jahanian2009-06-051-6/+16
| | | | | | change. More to follow. llvm-svn: 72951
* Improvements to CXXExprWithTemporaries in preparation for fixing a bug with ↵Anders Carlsson2009-06-051-4/+7
| | | | | | default arguments that have temporaries. llvm-svn: 72944
* Move CharIsSigned from TargetInfo to LangOptions.Eli Friedman2009-06-051-1/+1
| | | | llvm-svn: 72928
* Make TemplateArgumentListBuilder take an ASTContext (because we're probably ↵Anders Carlsson2009-06-051-0/+13
| | | | | | going to need it later). Move push_back to the .cpp file. If the passed in template argument is a type, assert that it's canonical. llvm-svn: 72918
* Make the TemplateArgumentList take a TemplateArgumentListBuilder.Anders Carlsson2009-06-051-10/+9
| | | | llvm-svn: 72917
* Change the specialization decls to take a TemplateArgumentListBuilder.Anders Carlsson2009-06-051-10/+7
| | | | llvm-svn: 72916
* Minor simplification.Eli Friedman2009-06-041-6/+2
| | | | llvm-svn: 72887
* PR4326: Handle constant evaluation for void* pointer subtraction Eli Friedman2009-06-041-1/+6
| | | | | | correctly. llvm-svn: 72886
* Minor improvements to template parameter writing.Anders Carlsson2009-06-041-2/+44
| | | | llvm-svn: 72848
* Eliminate a warningDouglas Gregor2009-06-041-0/+4
| | | | llvm-svn: 72846
* Cleanup/Refactoring of ivar collection. No change in functionality.Fariborz Jahanian2009-06-041-18/+54
| | | | llvm-svn: 72827
* Template argument deduction for referencesDouglas Gregor2009-06-041-0/+4
| | | | llvm-svn: 72822
* Place the GC attribute on the same relative pointerFariborz Jahanian2009-06-031-0/+7
| | | | | | | position to make it consistant and to match gcc's behavior, by placing it at the inner-most pointer. llvm-svn: 72784
* Use "()" instead of "(void)" when pretty-printing a parameter-less function ↵Argyrios Kyrtzidis2009-06-031-1/+1
| | | | | | type for C++. llvm-svn: 72747
* Diagnose misuse of __strong attribute in a redeclaration.Fariborz Jahanian2009-06-021-9/+16
| | | | llvm-svn: 72737
* Issue diagnostics on __weak attribute mismatch.Fariborz Jahanian2009-06-021-9/+28
| | | | | | Fixes an error recovery issue which caused a crash. llvm-svn: 72733
* Fix a silly typo in my previous objc_gc merging patch.Eli Friedman2009-06-021-1/+1
| | | | llvm-svn: 72723
* Cleaned-up version of gc attribute type merging. I still don't like it Eli Friedman2009-06-021-17/+26
| | | | | | | very much, but I have a feeling we're never going to have an implementation that makes sense because of compatibility issues. llvm-svn: 72715
* This patch attempts to fix the merging of __strong/__weak attributesFariborz Jahanian2009-06-021-2/+22
| | | | | | | | | | in merge_types. It is incomplete. We probably want to issue a warning if user attempts to change the attribute from __weak to __strong or vice-vera. It also assumes that a __weak/__strong attribute can not be specified with other (currently one) type attriute. llvm-svn: 72711
* A corner case of objc2 gc's write-barrier generationFariborz Jahanian2009-06-011-9/+17
| | | | | | for the Next runtime. llvm-svn: 72703
* Disable type merging with gc attributes. This has a number of nasty Eli Friedman2009-06-011-2/+2
| | | | | | | | | | | | | | | | | | | properties at the moment: 1. It allows stuff like "__strong id x; __weak id x;". 2. For constructs like "__strong id x; id x;", subsequent references to x lose the objc_gc attribute. 3. This incorrectly allows merges involving the address_space attribute. 4. Constructs like "id x; /* some code using x */ __weak id x;" don't apply the objc_gc attribute consistently to all uses of x. The first three can probably be fixed relatively easily; the fourth would be extremely difficult to fix. llvm-svn: 72683
* Initial infrastructure for class template partial specialization. HereDouglas Gregor2009-05-312-3/+30
| | | | | | | | | | | | | we have the basics of declaring and storing class template partial specializations, matching class template partial specializations at instantiation time via (limited) template argument deduction, and using the class template partial specialization's pattern for instantiation. This patch is enough to make a simple is_pointer type trait work, but not much else. llvm-svn: 72662
* Add a little FIXME for C++ class printingDouglas Gregor2009-05-311-0/+1
| | | | llvm-svn: 72660
* Clean up the newly added C++ AST nodes.Anders Carlsson2009-05-301-2/+25
| | | | llvm-svn: 72643
* Get rid of CXXTempVarDecl.Anders Carlsson2009-05-302-10/+0
| | | | llvm-svn: 72637
* Some small fixes for fields of reference type.Eli Friedman2009-05-301-2/+5
| | | | llvm-svn: 72636
* Stop using CXXTempVarDecl and use CXXTemporary instead.Anders Carlsson2009-05-301-8/+8
| | | | llvm-svn: 72634
* Remove VarDecl from CXXConstructExpr.Anders Carlsson2009-05-301-10/+8
| | | | llvm-svn: 72633
* Small fixes to CXXTemporary and CXXBindTemporaryExpr.Anders Carlsson2009-05-301-2/+2
| | | | llvm-svn: 72628
* Add a CXXBindTemporaryExpr.Anders Carlsson2009-05-302-0/+22
| | | | llvm-svn: 72627
* Add a CXXTemporary class. Not used yet.Anders Carlsson2009-05-301-0/+6
| | | | llvm-svn: 72626
* Cleqnup ideas from Chris, thanks.Mike Stump2009-05-301-5/+6
| | | | llvm-svn: 72621
* AST printing for C++ base classesDouglas Gregor2009-05-301-8/+46
| | | | llvm-svn: 72617
OpenPOWER on IntegriCloud