summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
...
* Update C++ status: dynamic_cast is sema-complete.Sebastian Redl2008-11-081-3/+3
| | | | llvm-svn: 58907
* Move named cast helpers out of Sema, as Chris requested. This requirse ↵Sebastian Redl2008-11-082-141/+148
| | | | | | making a few functions public that weren't before. llvm-svn: 58906
* Revert r58880, it breaks test/SemaCXX/constructor.cppArgyrios Kyrtzidis2008-11-081-2/+1
| | | | llvm-svn: 58904
* Use only one constructor for CXXMethodDecl. Keep initialization stuff into ↵Argyrios Kyrtzidis2008-11-082-7/+1
| | | | | | one place. llvm-svn: 58902
* Avoid redundant cast<>s / simplify type dispatch.Daniel Dunbar2008-11-082-45/+34
| | | | llvm-svn: 58892
* Support getTypeInfo, getTypeAlign, getTypeSize on const Type*s.Daniel Dunbar2008-11-082-7/+21
| | | | | | | | - Size/align are not effected by CVR qualifiers. Support getCanonicalType: const Type* -> const Type*. llvm-svn: 58891
* "Fix" PR3021, don't crash on generating record types when we can'tDaniel Dunbar2008-11-082-2/+11
| | | | | | generate the type of a member. llvm-svn: 58889
* Silence a gcc warning.Daniel Dunbar2008-11-081-1/+1
| | | | llvm-svn: 58888
* Add a boilerplate for out-of-bound array checking. This has no real function ↵Zhongxing Xu2008-11-083-1/+36
| | | | | | currently. llvm-svn: 58886
* In a declarator, consider an identifier a constructor only if it is followed ↵Argyrios Kyrtzidis2008-11-081-1/+2
| | | | | | | | | | | | by '('. Previously: class C { int C; // Declarator::SetConstructor was called here. }; llvm-svn: 58880
* update post-build stepTed Kremenek2008-11-081-1/+2
| | | | llvm-svn: 58878
* Greatly improve static_cast diagnosticsSebastian Redl2008-11-074-78/+143
| | | | llvm-svn: 58873
* Initial, partially-baked support for implicit user-defined conversions by ↵Douglas Gregor2008-11-074-3/+166
| | | | | | conversion functions llvm-svn: 58870
* Use css style instead of hard coded color in cxx_status. No visible change.Cedric Venet2008-11-071-257/+263
| | | | llvm-svn: 58867
* Changes in preparation for nested-name-specifiers.Argyrios Kyrtzidis2008-11-075-31/+53
| | | | | | | -When parsing declarators, don't depend on "CurScope->isCXXClassScope() == true" for constructors/destructors -For C++ member declarations, don't depend on "Declarator.getContext() == Declarator::MemberContext" llvm-svn: 58866
* Updated checker build.Ted Kremenek2008-11-071-1/+1
| | | | llvm-svn: 58864
* Update C++ statusDouglas Gregor2008-11-071-2/+16
| | | | llvm-svn: 58862
* Parsing, ASTs, and semantic analysis for the declaration of conversionDouglas Gregor2008-11-0714-19/+447
| | | | | | | | | | | | | functions in C++, e.g., struct X { operator bool() const; }; Note that these conversions don't actually do anything, since we don't yet have the ability to use them for implicit or explicit conversions. llvm-svn: 58860
* Assert that Parser::MaybeParseOperatorFunctionId is called when token is ↵Argyrios Kyrtzidis2008-11-072-5/+2
| | | | | | kw_operator, and replace ExpectAndConsume for the 'operator' token with a ConsumeToken. llvm-svn: 58855
* Separate the parsing of type-specifiers from other declaration specifiers, ↵Douglas Gregor2008-11-072-112/+187
| | | | | | so that we can parse a C++ type-specifier-seq llvm-svn: 58854
* include alloca.h instead of malloc.h. If this doesn't work for everyone we ↵Anders Carlsson2008-11-071-1/+1
| | | | | | can just declare alloca directly in the file. llvm-svn: 58853
* Append the test runs with '&&'.Argyrios Kyrtzidis2008-11-071-1/+1
| | | | llvm-svn: 58851
* Properly deserialize ParamInfo of FunctionDecl.Argyrios Kyrtzidis2008-11-071-2/+6
| | | | | | | When allocating an array for ParamInfo, the "decl->getNumParams()" call was used, but this will return 0 since it checks ParamInfo (which isn't yet defined and is null). The result was that ParamInfo got an array of zero length to hold the ParmVarDecls. llvm-svn: 58850
* Bring in 'alloca' for the Analysis/stack-addr-ps.c test case.Argyrios Kyrtzidis2008-11-071-0/+1
| | | | llvm-svn: 58849
* Add simple get method.Zhongxing Xu2008-11-071-0/+1
| | | | llvm-svn: 58848
* Join two lines.Zhongxing Xu2008-11-071-3/+1
| | | | llvm-svn: 58847
* Fix crash caused by this:Argyrios Kyrtzidis2008-11-072-0/+5
| | | | | | | | void f() { int +; // crash here } llvm-svn: 58846
* Shut off an unsigned/signed comparison warning for GCC.Argyrios Kyrtzidis2008-11-071-1/+1
| | | | llvm-svn: 58842
* Finish the implementation of VisitCompoundLiteralExpr. As VisitInitListExpr is Zhongxing Xu2008-11-077-42/+55
| | | | | | | | | available, things get much simplified. One addition is that CompoundLiteralExpr can appear both in rvalue and lvalue context. llvm-svn: 58837
* Make the assertion real.Zhongxing Xu2008-11-071-1/+1
| | | | llvm-svn: 58833
* Patch by Nikita Zhuk: Add TranslationUnitActions to AnalysisConsumer.Ted Kremenek2008-11-071-0/+12
| | | | llvm-svn: 58831
* Initial, rudimentary implementation of operator overloading for binaryDouglas Gregor2008-11-068-43/+189
| | | | | | | | | | | | | | | | | | operators. For example, one can now write "x + y" where x or y is a class or enumeration type, and Clang will perform overload resolution for "+" based on the overloaded operators it finds. The other kinds of overloadable operators in C++ will follow this same approach. Three major issues remain: 1) We don't find member operators 2) Since we don't have user-defined conversion operators, we can't call any of the built-in overloaded operators in C++ [over.built]. 3) Once we've done the semantic checks, we drop the overloaded operator on the floor; it doesn't get into the AST at all. llvm-svn: 58821
* Parsing, ASTs, and semantic analysis for the declaration of overloadedDouglas Gregor2008-11-0617-12/+639
| | | | | | | | | operators in C++. Overloaded operators can be called directly via their operator-function-ids, e.g., "operator+(foo, bar)", but we don't yet implement the semantics of operator overloading to handle, e.g., "foo + bar". llvm-svn: 58817
* Reclaim some bits in IdentifierInfo, for later use as overloaded operator names.Douglas Gregor2008-11-062-11/+20
| | | | llvm-svn: 58806
* Sema-check virtual declarations. Complete dynamic_cast checking.Sebastian Redl2008-11-067-9/+72
| | | | llvm-svn: 58804
* Add the remaining C++0x keywordsDouglas Gregor2008-11-062-1/+16
| | | | llvm-svn: 58802
* Update VC++ proj.Steve Naroff2008-11-062-0/+5
| | | | llvm-svn: 58797
* Bring back RegionExtent classes.Zhongxing Xu2008-11-061-0/+79
| | | | llvm-svn: 58795
* Updated checker build.Ted Kremenek2008-11-051-1/+1
| | | | llvm-svn: 58776
* Add a test case for CFMakeCollectable.Ted Kremenek2008-11-051-0/+13
| | | | llvm-svn: 58772
* Fix regression with handling of CFMakeCollectable.Ted Kremenek2008-11-051-1/+6
| | | | llvm-svn: 58771
* Improve assert messages.Sebastian Redl2008-11-051-2/+2
| | | | llvm-svn: 58770
* Move named cast sema functions to their own file.Sebastian Redl2008-11-052-660/+677
| | | | llvm-svn: 58769
* Parsing, representation, and preliminary semantic analysis of destructors.Douglas Gregor2008-11-0514-110/+580
| | | | | | | | | | | Implicit declaration of destructors (when necessary). Extended Declarator to store information about parsed constructors and destructors; this will be extended to deal with declarators that name overloaded operators (e.g., "operator +") and user-defined conversion operators (e.g., "operator int"). llvm-svn: 58767
* AnalysisManager can now be used to for analyses over TranslationUnits.Ted Kremenek2008-11-051-5/+22
| | | | llvm-svn: 58766
* A small error message improvement and some comment cleanup for static_cast.Sebastian Redl2008-11-052-14/+28
| | | | llvm-svn: 58762
* initXXX methods can return owned objectsTed Kremenek2008-11-051-2/+7
| | | | llvm-svn: 58758
* Keep track of whether a C++ class is an aggregate. Don't allow ↵Douglas Gregor2008-11-056-9/+85
| | | | | | initialization of non-aggregates with initializer lists. llvm-svn: 58757
* Implement C++ copy-initialization for declarations. There is now someDouglas Gregor2008-11-057-46/+143
| | | | | | | | duplication in the handling of copy-initialization by constructor, which occurs both for initialization of a declaration and for overloading. The initialization code is due for some refactoring. llvm-svn: 58756
* Initial implementation of parsing, semantic analysis, and AST-buildingDouglas Gregor2008-11-0513-17/+473
| | | | | | | | | | | | | for constructor initializations, e.g., class A { }; class B : public A { int m; public: B() : A(), m(17) { }; }; llvm-svn: 58749
OpenPOWER on IntegriCloud