aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2008-10-27Don't double free module when IRgen fails.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58266 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Improve dependency file support.Daniel Dunbar
- Add support for -MP (phony targets). - Use raw_ostream for output instead of std::string concatenation. - Break long lines in a GCC (4.2) compatible manner. - Output dependents in #included order (to match GCC). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58265 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Refactor the expression class hierarchy for casts. Most importantly:Douglas Gregor
- CastExpr is the root of all casts - ImplicitCastExpr is (still) used for all explicit casts - ExplicitCastExpr is now the root of all *explicit* casts - ExplicitCCastExpr (new name needed!?) is a C-style cast in C or C++ - CXXFunctionalCastExpr inherits from ExplicitCastExpr - CXXNamedCastExpr inherits from ExplicitCastExpr and is the root of all of the C++ named cast expression types (static_cast, dynamic_cast, etc.) - Added classes CXXStaticCastExpr, CXXDynamicCastExpr, CXXReinterpretCastExpr, and CXXConstCastExpr to Also, fixed returned-stack-addr.cpp, which broke once when we fixed reinterpret_cast to diagnose double->int* conversions and again when we eliminated implicit conversions to reference types. The fix is in both testcase and SemaChecking.cpp. Most of this patch is simply support for the renaming. There's very little actual change in semantics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58264 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Some fixups to the previous objc/blocks rewriter smerge.Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58262 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27- Move ExprIterator to Stmt.h so that it can be used by classes defined in ↵Ted Kremenek
Stmt.h - Implement child_begin() and child_end() for AsmStmt. Previously these had stub implementations that did not iterate over the input/output operands of an inline assembly statement. - Use ExprIterator for performing iteration over input/output operands. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58261 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Integrate the blocks and objc rewriters.Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58253 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Fix some invalid casts that are detected by Sema now or soon.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58252 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Add store option to scan-build and ccc-analyzer.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58248 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Use ASTContext::getCanonicalType() to get TypedRegion's type.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58247 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27An ElementRegion is really a typed region. Its super region's type has to be ↵Zhongxing Xu
ArrayType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58245 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27When destroying a translation unit, deallocate its owned declarations in ↵Douglas Gregor
reverse order, because there may be dependencies among the declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58244 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27We cannot get precise lvalue for symbolic base array region.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58243 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Replace common diagnostic with a convenience function.Steve Naroff
This simplifies debug of this particular diagnostic (and removes some code clutter). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58242 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Fix <rdar://problem/6315646> clang on xcode: error: invalid operands to ↵Steve Naroff
binary expression ('id<NSTableViewDelegate>' and 'XCExtendedArrayController *'). There is still a bug here (as the FIXME in the test case indicates). Prior to this patch, the bug would generate an error. Now, we simply do nothing (which is less harmful until we can get it right). The complete bug fix will require changing ASTContext::mergeTypes(), which I'd like to defer for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58241 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Get the canonical type for struct initialization. The original code would ↵Zhongxing Xu
crash on TypedefType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58236 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Add test for SCA region store.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58235 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Add test for SCA region store.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58234 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Only loc::MemRegionVal can be modified. This avoids crashing in RegionStore ↵Zhongxing Xu
when a function pointer is used as an argument. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58233 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Rename Characteristic_t to CharacteristicKindChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58224 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Fix the definition of __builtin_va_list on PPC, which was set to the V4 ABI, ↵Chris Lattner
not the darwin or AIX abis. This fixes PR2904. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58222 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26make codegen reject initializes with designators, like this:Chris Lattner
t.c:1:13: error: cannot codegen this designators yet int a[10] = {2, 4, [8]=9, 10}; ^~~~~~~~~~~~~~~~~ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58220 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26Remember whether an initlist had a designator in the AST.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58218 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26pass designators into sema. This completes parser-level designatorChris Lattner
support as far as I know. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58217 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26implement some more FIXMEs, by rejecting more bogus stuff inChris Lattner
objc mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58216 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26add some simple designator testcases. Reject things like this:Chris Lattner
struct foo Y[10] = { [4] .arr [2] 4 // expected-error {{expected '=' or another designator}} }; because the "missing equals" extension only is valid if there is exactly one array designator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58215 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26improve comments, build array and array range designator nodes, Chris Lattner
fix an obscure memory leak. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58213 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26improve comments, build a Designation for field designators andChris Lattner
improve diagnostic for a malformed field designator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58212 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26restructure ParseInitializerWithPotentialDesignator to make itChris Lattner
easier to understand and hack on, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58210 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26improve MayBeDesignationStart to do the entire determination Chris Lattner
about whether a leading identifier is a designator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58207 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26inline the decision logic that chooses between an assign expr and braceChris Lattner
initializer, avoiding an extra level of calls for silly things like 'int x = 4'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58206 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26This patch continues parser-level implementation of designators:Chris Lattner
1. It introduces new parser level abstractions for designators that are used to communicate between parser and sema. 2. This fixes a FIXME where "identifier ':'" was considered to be a designator even if it wasn't the first in a designator list. 3. In the "identifier ':'" case, it actually builds the designator representation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58205 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26minor cleanupsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58203 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26Allow \n for newlines in expected error messages.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58198 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26Don't give a default argument to ASTContext::getFunctionType for the ↵Argyrios Kyrtzidis
TypeQuals parameter, it causes subtle bugs where TypeQuals, while necessary, are omitted from the call. -Remove the default argument. -Update all call sites of ASTContext::getFunctionType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58187 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26Remove loc::StringLiteralVal. Now we allocate regions for string literals in ↵Zhongxing Xu
the Store. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58182 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26Simplify ArrayToPointer conversion. Actually the only thing we need to do is ↵Zhongxing Xu
to get the first element region. It is not necessary to care about the kind of the base array region. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58181 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26CMake: Builds and installs clang binary and libs (no docs yet). ItOscar Fuentes
must be under the `tools' subdirectory of the LLVM *source* tree. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58180 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25Use string literal for format string specifier; this prevents ErrMsg from ↵Ted Kremenek
being interpretted as a format string specifier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58150 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25Do not crash when performing VisitLValue on union types.Ted Kremenek
This fixes PR 2948. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58148 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25Add a note file for SCA module. Is it the right place?Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58140 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25Add code for get the lvalue for string literals. Now we return a StringRegionZhongxing Xu
for StringLiteral lvalue evaluation, instead of directly returning a loc::StringLiteralVal by the Environment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58138 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25Add StringRegion to MemRegions.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58137 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25Add StringLiteral test code.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58136 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25Now we can handle arrays.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58135 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-242nd try to fix leakage of the module provider. note that moduleprovider ↵Nuno Lopes
takes ownership of the module git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58128 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24fix leaking of the module providerNuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58127 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24Updated checker build.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58125 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24Add a quote from the standard about the type of 'this'.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58124 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24Unbreak the test by.. removing a space. (clang protested that -verify only ↵Argyrios Kyrtzidis
works on single input files). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58123 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24Add initial dependency file generation support. Patch by KovarththananDaniel Dunbar
Rajaratnam, with some updates and formatting changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58122 91177308-0d34-0410-b5e6-96231b3b80d8