summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST
Commit message (Collapse)AuthorAgeFilesLines
* Anonymous namespaces, sema + codegen. A lot of semantics are still broken,John McCall2009-10-011-0/+11
| | | | | | apparently because using directives aren't quite working correctly. llvm-svn: 83184
* Desugaring optimizations. Add single-step desugaring methods to allJohn McCall2009-09-291-59/+52
| | | | | | | | | concrete types. Use unqualified desugaring for getAs<> and sundry. Fix a few users to either not desugar or use qualified desugar, as seemed appropriate. Removed Type's qualified desugar method, as it was easy to accidentally use instead of QualType's. llvm-svn: 83116
* Pull TypeLocVisitor into its own header file.Argyrios Kyrtzidis2009-09-291-1/+1
| | | | llvm-svn: 83112
* Introduce ObjCInterfaceLoc which provides type source information for ObjC ↵Argyrios Kyrtzidis2009-09-291-0/+18
| | | | | | interfaces. llvm-svn: 83097
* Introduce ObjCProtocolListLoc for keeping source location information for ↵Argyrios Kyrtzidis2009-09-291-0/+24
| | | | | | protocol references. llvm-svn: 83094
* Introduce ObjCProtocolListType type subclass.Argyrios Kyrtzidis2009-09-292-0/+54
| | | | | | | | | This is used only for keeping detailed type source information for protocol references, it should not participate in the semantics of the type system. Its protocol list is not canonicalized. llvm-svn: 83093
* Introduce Type::getTypeClassName() that returns the string associated with ↵Argyrios Kyrtzidis2009-09-291-0/+9
| | | | | | the TypeClass enum. llvm-svn: 83090
* Introduce TypeLoc::getSourceRange().Argyrios Kyrtzidis2009-09-291-24/+24
| | | | llvm-svn: 83089
* -Introduce TypeLoc::getOpaqueData()Argyrios Kyrtzidis2009-09-291-1/+1
| | | | | | -Make TypeLoc's constructor public. llvm-svn: 83088
* Handle C++ delete expressions when the overloaded delete operator is aDouglas Gregor2009-09-291-0/+34
| | | | | | | | | | | "usual deallocation function" with two arguments. CodeGen will have to handle this case specifically, since the value for the second argument (the size of the allocated object) may have to be computed at run time. Fixes the Sema part of PR4782. llvm-svn: 83080
* Fix http://llvm.org/PR5090.Mike Stump2009-09-291-0/+4
| | | | llvm-svn: 83035
* Add all of the C99 complex builtins prefixed with __builtin_Douglas Gregor2009-09-281-0/+5
| | | | llvm-svn: 83020
* Make Decl::dump const.Anders Carlsson2009-09-261-4/+4
| | | | llvm-svn: 82878
* Address comment from Daniel.Anders Carlsson2009-09-261-1/+1
| | | | llvm-svn: 82865
* Rename NextOffset to DataSize.Anders Carlsson2009-09-262-13/+20
| | | | llvm-svn: 82832
* Start at NextOffset when laying out bases as well.Anders Carlsson2009-09-261-1/+1
| | | | llvm-svn: 82831
* Use NextOffset when laying out a field.Anders Carlsson2009-09-261-1/+1
| | | | llvm-svn: 82828
* Even more work on empty classes.Anders Carlsson2009-09-251-7/+31
| | | | llvm-svn: 82770
* Fix MSVC build by renaming a variable. PR5043Benjamin Kramer2009-09-251-2/+2
| | | | llvm-svn: 82762
* Fix checking for a null pointer constant when the expression itself isDouglas Gregor2009-09-251-7/+19
| | | | | | | | | | | | value-dependent. Audit (and fixed) all calls to Expr::isNullPointerConstant() to provide the correct behavior with value-dependent expressions. Fixes PR5041 and a crash in libstdc++ <locale>. In the same vein, properly compute value- and type-dependence for ChooseExpr. Fixes PR4996. llvm-svn: 82748
* Who would have thought that empty classes were so tricky? Handle cases where ↵Anders Carlsson2009-09-252-0/+39
| | | | | | an empty virtual base class needs to be moved aside because it conflicts with the first field. llvm-svn: 82746
* Handle array fields that contain empty structs.Anders Carlsson2009-09-252-6/+26
| | | | llvm-svn: 82744
* More work on empty classes.Anders Carlsson2009-09-252-0/+27
| | | | llvm-svn: 82736
* Make it really, really easy to change the alignment of Type (and ExtQuals).John McCall2009-09-241-66/+72
| | | | llvm-svn: 82730
* WIP implementation of explicit function template specialization. ThisDouglas Gregor2009-09-242-4/+24
| | | | | | | | | | | | | | | | | | | | | first implementation recognizes when a function declaration is an explicit function template specialization (based on the presence of a template<> header), performs template argument deduction + ambiguity resolution to determine which template is being specialized, and hooks There are many caveats here: - We completely and totally drop any explicitly-specified template arguments on the floor - We don't diagnose any of the extra semantic things that we should diagnose. - I haven't looked to see that we're getting the right linkage for explicit specializations On a happy note, this silences a bunch of errors that show up in libstdc++'s <iostream>, although Clang still can't get through the entire header. llvm-svn: 82728
* Refactor the representation of qualifiers to bring ExtQualType out of theJohn McCall2009-09-247-407/+260
| | | | | | | | Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our use of qualifiers and fix a few places that weren't dealing with qualifiers quite right; many more remain. llvm-svn: 82705
* More improvements with laying out empty bases.Anders Carlsson2009-09-241-9/+52
| | | | llvm-svn: 82682
* More work on empty classes.Anders Carlsson2009-09-241-8/+23
| | | | llvm-svn: 82679
* Scaffolding for supporting empty bases/fields.Anders Carlsson2009-09-242-16/+55
| | | | llvm-svn: 82678
* implement support for __builtin_eh_return_data_regno on x86-32 and x86-64.Chris Lattner2009-09-231-0/+6
| | | | | | This implements PR5034 and rdar://6836445. llvm-svn: 82614
* If we already set a primary base, don't set it to the first nearly empty ↵Anders Carlsson2009-09-221-2/+2
| | | | | | base class. llvm-svn: 82563
* Fix speling error.Anders Carlsson2009-09-221-1/+1
| | | | llvm-svn: 82562
* Explicitly initialize the PrimaryBase and PrimaryBaseWasVirtual members.Anders Carlsson2009-09-221-5/+3
| | | | llvm-svn: 82560
* Yes.Mike Stump2009-09-221-1/+0
| | | | llvm-svn: 82559
* Add safe part of previous (reverted) commit, necessary to update to LLVM API ↵Daniel Dunbar2009-09-221-1/+1
| | | | | | change. llvm-svn: 82540
* Revert "Switch a few clients over to StringLiteral::getString.", this is ↵Daniel Dunbar2009-09-221-1/+1
| | | | | | breaking some projects, but I don't have a test case yet. llvm-svn: 82539
* Switch a few clients over to StringLiteral::getString.Daniel Dunbar2009-09-221-1/+1
| | | | | | - Switching all of them out-of-my-current-scope-of-interest, sorry. llvm-svn: 82515
* Add StringLiteral::getString -> StringRef.Daniel Dunbar2009-09-221-4/+4
| | | | llvm-svn: 82514
* Store the set of indirect primary bases directly in the record layout builder.Anders Carlsson2009-09-222-44/+54
| | | | llvm-svn: 82513
* Fix doc.Mike Stump2009-09-221-1/+1
| | | | llvm-svn: 82511
* Record layout builder cleanup.Anders Carlsson2009-09-222-22/+11
| | | | llvm-svn: 82502
* Change all the Type::getAsFoo() methods to specializations of Type::getAs().John McCall2009-09-218-186/+54
| | | | | | | | | | | Several of the existing methods were identical to their respective specializations, and so have been removed entirely. Several more 'leaf' optimizations were introduced. The getAsFoo() methods which imposed extra conditions, like getAsObjCInterfacePointerType(), have been left in place. llvm-svn: 82501
* Disable questionable code for handling isNullPointerConstant on value dependentDaniel Dunbar2009-09-181-2/+2
| | | | | | expression. llvm-svn: 82217
* Fix two crashes on value dependent expressions (shift and null-pointer check).Daniel Dunbar2009-09-171-0/+3
| | | | | | | | - Doug, please check. - PR4940. llvm-svn: 82129
* Remove trailing whitespace.Daniel Dunbar2009-09-171-9/+9
| | | | llvm-svn: 82128
* Temporary band-aid for handling empty classes somewhat better.Anders Carlsson2009-09-171-1/+3
| | | | llvm-svn: 82124
* When creating function types, remove any top-level CVR qualifications in the ↵Anders Carlsson2009-09-161-0/+6
| | | | | | function type argument types. llvm-svn: 82093
* Improved representation and support for friend class templates. Angst about ↵John McCall2009-09-162-0/+17
| | | | | | same. llvm-svn: 82088
* Do not generate write-barrier in indirect assignment toFariborz Jahanian2009-09-161-2/+4
| | | | | | a weak object. llvm-svn: 82061
* In building list of visible conversion functions, useFariborz Jahanian2009-09-151-2/+2
| | | | | | result type of template convesion functions. llvm-svn: 81943
OpenPOWER on IntegriCloud