Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Update C++ status: dynamic_cast is sema-complete. | Sebastian Redl | 2008-11-08 | 1 | -3/+3 | |
| | | | | llvm-svn: 58907 | |||||
* | Move named cast helpers out of Sema, as Chris requested. This requirse ↵ | Sebastian Redl | 2008-11-08 | 2 | -141/+148 | |
| | | | | | | making a few functions public that weren't before. llvm-svn: 58906 | |||||
* | Revert r58880, it breaks test/SemaCXX/constructor.cpp | Argyrios Kyrtzidis | 2008-11-08 | 1 | -2/+1 | |
| | | | | llvm-svn: 58904 | |||||
* | Use only one constructor for CXXMethodDecl. Keep initialization stuff into ↵ | Argyrios Kyrtzidis | 2008-11-08 | 2 | -7/+1 | |
| | | | | | | one place. llvm-svn: 58902 | |||||
* | Avoid redundant cast<>s / simplify type dispatch. | Daniel Dunbar | 2008-11-08 | 2 | -45/+34 | |
| | | | | llvm-svn: 58892 | |||||
* | Support getTypeInfo, getTypeAlign, getTypeSize on const Type*s. | Daniel Dunbar | 2008-11-08 | 2 | -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't | Daniel Dunbar | 2008-11-08 | 2 | -2/+11 | |
| | | | | | | generate the type of a member. llvm-svn: 58889 | |||||
* | Silence a gcc warning. | Daniel Dunbar | 2008-11-08 | 1 | -1/+1 | |
| | | | | llvm-svn: 58888 | |||||
* | Add a boilerplate for out-of-bound array checking. This has no real function ↵ | Zhongxing Xu | 2008-11-08 | 3 | -1/+36 | |
| | | | | | | currently. llvm-svn: 58886 | |||||
* | In a declarator, consider an identifier a constructor only if it is followed ↵ | Argyrios Kyrtzidis | 2008-11-08 | 1 | -1/+2 | |
| | | | | | | | | | | | | by '('. Previously: class C { int C; // Declarator::SetConstructor was called here. }; llvm-svn: 58880 | |||||
* | update post-build step | Ted Kremenek | 2008-11-08 | 1 | -1/+2 | |
| | | | | llvm-svn: 58878 | |||||
* | Greatly improve static_cast diagnostics | Sebastian Redl | 2008-11-07 | 4 | -78/+143 | |
| | | | | llvm-svn: 58873 | |||||
* | Initial, partially-baked support for implicit user-defined conversions by ↵ | Douglas Gregor | 2008-11-07 | 4 | -3/+166 | |
| | | | | | | conversion functions llvm-svn: 58870 | |||||
* | Use css style instead of hard coded color in cxx_status. No visible change. | Cedric Venet | 2008-11-07 | 1 | -257/+263 | |
| | | | | llvm-svn: 58867 | |||||
* | Changes in preparation for nested-name-specifiers. | Argyrios Kyrtzidis | 2008-11-07 | 5 | -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 Kremenek | 2008-11-07 | 1 | -1/+1 | |
| | | | | llvm-svn: 58864 | |||||
* | Update C++ status | Douglas Gregor | 2008-11-07 | 1 | -2/+16 | |
| | | | | llvm-svn: 58862 | |||||
* | Parsing, ASTs, and semantic analysis for the declaration of conversion | Douglas Gregor | 2008-11-07 | 14 | -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 Kyrtzidis | 2008-11-07 | 2 | -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 Gregor | 2008-11-07 | 2 | -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 Carlsson | 2008-11-07 | 1 | -1/+1 | |
| | | | | | | can just declare alloca directly in the file. llvm-svn: 58853 | |||||
* | Append the test runs with '&&'. | Argyrios Kyrtzidis | 2008-11-07 | 1 | -1/+1 | |
| | | | | llvm-svn: 58851 | |||||
* | Properly deserialize ParamInfo of FunctionDecl. | Argyrios Kyrtzidis | 2008-11-07 | 1 | -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 Kyrtzidis | 2008-11-07 | 1 | -0/+1 | |
| | | | | llvm-svn: 58849 | |||||
* | Add simple get method. | Zhongxing Xu | 2008-11-07 | 1 | -0/+1 | |
| | | | | llvm-svn: 58848 | |||||
* | Join two lines. | Zhongxing Xu | 2008-11-07 | 1 | -3/+1 | |
| | | | | llvm-svn: 58847 | |||||
* | Fix crash caused by this: | Argyrios Kyrtzidis | 2008-11-07 | 2 | -0/+5 | |
| | | | | | | | | void f() { int +; // crash here } llvm-svn: 58846 | |||||
* | Shut off an unsigned/signed comparison warning for GCC. | Argyrios Kyrtzidis | 2008-11-07 | 1 | -1/+1 | |
| | | | | llvm-svn: 58842 | |||||
* | Finish the implementation of VisitCompoundLiteralExpr. As VisitInitListExpr is | Zhongxing Xu | 2008-11-07 | 7 | -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 Xu | 2008-11-07 | 1 | -1/+1 | |
| | | | | llvm-svn: 58833 | |||||
* | Patch by Nikita Zhuk: Add TranslationUnitActions to AnalysisConsumer. | Ted Kremenek | 2008-11-07 | 1 | -0/+12 | |
| | | | | llvm-svn: 58831 | |||||
* | Initial, rudimentary implementation of operator overloading for binary | Douglas Gregor | 2008-11-06 | 8 | -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 overloaded | Douglas Gregor | 2008-11-06 | 17 | -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 Gregor | 2008-11-06 | 2 | -11/+20 | |
| | | | | llvm-svn: 58806 | |||||
* | Sema-check virtual declarations. Complete dynamic_cast checking. | Sebastian Redl | 2008-11-06 | 7 | -9/+72 | |
| | | | | llvm-svn: 58804 | |||||
* | Add the remaining C++0x keywords | Douglas Gregor | 2008-11-06 | 2 | -1/+16 | |
| | | | | llvm-svn: 58802 | |||||
* | Update VC++ proj. | Steve Naroff | 2008-11-06 | 2 | -0/+5 | |
| | | | | llvm-svn: 58797 | |||||
* | Bring back RegionExtent classes. | Zhongxing Xu | 2008-11-06 | 1 | -0/+79 | |
| | | | | llvm-svn: 58795 | |||||
* | Updated checker build. | Ted Kremenek | 2008-11-05 | 1 | -1/+1 | |
| | | | | llvm-svn: 58776 | |||||
* | Add a test case for CFMakeCollectable. | Ted Kremenek | 2008-11-05 | 1 | -0/+13 | |
| | | | | llvm-svn: 58772 | |||||
* | Fix regression with handling of CFMakeCollectable. | Ted Kremenek | 2008-11-05 | 1 | -1/+6 | |
| | | | | llvm-svn: 58771 | |||||
* | Improve assert messages. | Sebastian Redl | 2008-11-05 | 1 | -2/+2 | |
| | | | | llvm-svn: 58770 | |||||
* | Move named cast sema functions to their own file. | Sebastian Redl | 2008-11-05 | 2 | -660/+677 | |
| | | | | llvm-svn: 58769 | |||||
* | Parsing, representation, and preliminary semantic analysis of destructors. | Douglas Gregor | 2008-11-05 | 14 | -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 Kremenek | 2008-11-05 | 1 | -5/+22 | |
| | | | | llvm-svn: 58766 | |||||
* | A small error message improvement and some comment cleanup for static_cast. | Sebastian Redl | 2008-11-05 | 2 | -14/+28 | |
| | | | | llvm-svn: 58762 | |||||
* | initXXX methods can return owned objects | Ted Kremenek | 2008-11-05 | 1 | -2/+7 | |
| | | | | llvm-svn: 58758 | |||||
* | Keep track of whether a C++ class is an aggregate. Don't allow ↵ | Douglas Gregor | 2008-11-05 | 6 | -9/+85 | |
| | | | | | | initialization of non-aggregates with initializer lists. llvm-svn: 58757 | |||||
* | Implement C++ copy-initialization for declarations. There is now some | Douglas Gregor | 2008-11-05 | 7 | -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-building | Douglas Gregor | 2008-11-05 | 13 | -17/+473 | |
| | | | | | | | | | | | | | for constructor initializations, e.g., class A { }; class B : public A { int m; public: B() : A(), m(17) { }; }; llvm-svn: 58749 |