aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2008-10-28clarify comment, rename argument to avoid a subtle conflictChris Lattner
with an ivar that wasn't a bug but was confusing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58311 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-28Call llvm_shutdown() on (normal) termination. This makes --time-passes usable.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58308 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-28Don't run the verifier as part of IRgen, this is now down (per module)Daniel Dunbar
in the driver (this means we no longer run the verifier per function, however). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58307 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-28Improve our handling of (C++) references within Clang. Specifically:Douglas Gregor
- Do not allow expressions to ever have reference type - Extend Expr::isLvalue to handle more cases where having written a reference into the source implies that the expression is an lvalue (e.g., function calls, C++ casts). - Make GRExprEngine::VisitCall treat the call arguments as lvalues when they are being bound to a reference parameter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58306 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-28Initialize Suffix and Prefix to 0, even with a bad entry. Removes an ↵Ted Kremenek
uninitialized value warning from gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58305 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-28Add attribute always_inline support.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58304 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-28Mark mmintrin functions static inline, this ensures they don't end upDaniel Dunbar
being emitted unless needed and doesn't inhibit inlining. - Can be fixed once we implement C99 inline semantics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58303 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27- Fix type-punning warning in SVals.cpp by using a real iterator class for ↵Ted Kremenek
symbol_iterator. - Add symbol_iterator support for SymbolicRegions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58300 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Remove type-punning warning in GRExprEngine. No functionality change.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58292 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Skip random pathname characters better. I had a 5 in mine.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58291 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Update checker build.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58289 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Add test case to exercise IRgen "unsupported" path (mostly cleanup).Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58286 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27With -verify, only exit early on failure.Daniel Dunbar
- Nice if -verify test exercise the various cleanup functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58285 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Remove unneeded CheckASTConsumer function.Daniel Dunbar
- No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58282 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Comment fix, ParseAST does not take ownership of the consumer.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58281 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Add 'expected-warning' for braces around scalar initializerTed Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58280 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Added compound literal test case.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58279 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Added preliminary support for CompoundLiterals in the static analyzer:Ted Kremenek
- GRExprEngine::VisitCompoundLiteral... (1) visits the initializer list (generating ExplodedNodes) (2) creates a CompoundMemRegion for the literal (3) creates a new state with the bound literal values using GRStateManager::BindCompoundLiteral - GRStateManager::BindCompoundLiteral simply calls StoreManager::BindCompoundLiteral to get a new store and returns a persistent GRState with that store. - BasicStore::BindCompoundLiteral simply returns the same store, as it doesn't handle field sensitivity - RegionStore::BindCompoundLiteral currently fires an assert (pending discussion of how to best implement mappings for CompoundLiteralRegion). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58277 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Update Xcode project.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58276 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Pull determination of the super region for a VarRegion into a single ↵Ted Kremenek
getVarRegion() method. This provides a common clean API for clients. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58272 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Added CompoundLiteralRegion to represent the (temporary) memory allocated ↵Ted Kremenek
for a compound literal. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58270 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Fix testsuite regression for "crash.m".Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58269 91177308-0d34-0410-b5e6-96231b3b80d8
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