- Dec 10, 2009
-
-
Mike Stump authored
llvm-svn: 90994
-
Ted Kremenek authored
Fix null dereference in OSAtomicChecker and special case SymbolicRegions. We still aren't handling them correctly; I've added to failing test cases to test/Analysis/NSString-failed-cases.m that should pass and then be merged in to test/Analysis/NSString.m. llvm-svn: 90993
-
Douglas Gregor authored
new notion of an "initialization sequence", which encapsulates the computation of the initialization sequence along with diagnostic information and the capability to turn the computed sequence into an expression. At present, I've only switched one CheckReferenceInit callers over to this new mechanism; more will follow. Aside from (hopefully) being much more true to the standard, the diagnostics provided by this reference-initialization code are a bit better than before. Some examples: p5-var.cpp:54:12: error: non-const lvalue reference to type 'struct Derived' cannot bind to a value of unrelated type 'struct Base' Derived &dr2 = b; // expected-error{{non-const lvalue reference to ... ^ ~ p5-var.cpp:55:9: error: binding of reference to type 'struct Base' to a value of type 'struct Base const' drops qualifiers Base &br3 = bc; // expected-error{{drops qualifiers}} ^ ~~ p5-var.cpp:57:15: error: ambiguous conversion from derived class 'struct Diamond' to base class 'struct Base': struct Diamond -> struct Derived -> struct Base struct Diamond -> struct Derived2 -> struct Base Base &br5 = diamond; // expected-error{{ambiguous conversion from ... ^~~~~~~ p5-var.cpp:59:9: error: non-const lvalue reference to type 'long' cannot bind to a value of unrelated type 'int' long &lr = i; // expected-error{{non-const lvalue reference to type ... ^ ~ p5-var.cpp:74:9: error: non-const lvalue reference to type 'struct Base' cannot bind to a temporary of type 'struct Base' Base &br1 = Base(); // expected-error{{non-const lvalue reference to ... ^ ~~~~~~ p5-var.cpp:102:9: error: non-const reference cannot bind to bit-field 'i' int & ir1 = (ib.i); // expected-error{{non-const reference cannot ... ^ ~~~~~~ p5-var.cpp:98:7: note: bit-field is declared here int i : 17; // expected-note{{bit-field is declared here}} ^ llvm-svn: 90992
-
- Dec 09, 2009
-
-
Mike Stump authored
llvm-svn: 90991
-
Dan Gohman authored
llvm-svn: 90990
-
Evan Cheng authored
llvm-svn: 90988
-
Fariborz Jahanian authored
(fixes radar 7457109). llvm-svn: 90986
-
Evan Cheng authored
vector_shuffle (scalar_to_vector (i32 load (ptr + 4))), undef, <0, 0, 0, 0> => vector_shuffle (v4i32 load ptr), undef, <1, 1, 1, 1> iff ptr is 16-byte aligned (or can be made into 16-byte aligned). llvm-svn: 90984
-
Mike Stump authored
llvm-svn: 90982
-
Fariborz Jahanian authored
was not needed (fixes radar 7453430). llvm-svn: 90981
-
Dan Gohman authored
currently somewhat convenient for them to have the same value. llvm-svn: 90980
-
Devang Patel authored
llvm-svn: 90979
-
Chris Lattner authored
clobbers to forward pieces of large stores to small loads, we need to consider the properly phi translated pointer in the store block. llvm-svn: 90978
-
Chris Lattner authored
implicitly constant folds. llvm-svn: 90977
-
Mike Stump authored
llvm-svn: 90976
-
Bob Wilson authored
llvm-svn: 90975
-
Anders Carlsson authored
llvm-svn: 90974
-
Chris Lattner authored
add, there is no need to scan the world to find the same add again. This invalidates the previous testcase, which wasn't wonderful anyway, because it needed a run of instcombine to permute the use-lists in just the right way to before GVN was run (so it was really fragile). Not a big loss. llvm-svn: 90973
-
Anton Korobeynikov authored
Patch by Gregory Petrosyan! llvm-svn: 90972
-
Chris Lattner authored
binary operator that wasn't an add. In this case, a xor. Whoops. llvm-svn: 90971
-
-
Chris Lattner authored
llvm-svn: 90969
-
Zhongxing Xu authored
llvm-svn: 90968
-
Zhongxing Xu authored
Otherwise, even when real evaluation occurs, the previous fake auto transitions would still be in the destination set, causing fake state bifurcation. llvm-svn: 90967
-
Daniel Dunbar authored
directly and one can write '-includefoo' if one really wants to. llvm-svn: 90966
-
John McCall authored
"integer promotion" type associated with an enum decl, and use this type to determine which type to promote to. This type obeys C++ [conv.prom]p2 and is therefore generally signed unless the range of the enumerators forces it to be unsigned. Kills off a lot of false positives from -Wsign-compare in C++, addressing rdar://7455616 llvm-svn: 90965
-
Zhongxing Xu authored
instead of the ElementRegion obtained from casts. Test cast: the leak cannot occur bacause the true branch cannot be taken. llvm-svn: 90964
-
Eric Christopher authored
llvm-svn: 90962
-
Anders Carlsson authored
llvm-svn: 90961
-
Chris Lattner authored
to require the load ty/ptr to be passed in, no functionality change. llvm-svn: 90960
-
Chris Lattner authored
and pointer instead of the load. No functionality change. llvm-svn: 90959
-
Chris Lattner authored
of the query. llvm-svn: 90958
-
Daniel Dunbar authored
llvm-svn: 90957
-
Chris Lattner authored
own small class. No functionality change. llvm-svn: 90956
-
Ted Kremenek authored
llvm-svn: 90955
-
Zhongxing Xu authored
llvm-svn: 90953
-
Zhongxing Xu authored
repeatedly. llvm-svn: 90952
-
Lang Hames authored
When a call is placed to spill an interval this spiller will first try to break the interval up into its component values. Single value intervals and intervals which have already been split (or are the result of previous splits) are spilled by the default spiller. Splitting intervals as described above may improve the performance of generated code in some circumstances. This work is experimental however, and it still miscompiles many benchmarks. It's not recommended for general use yet. llvm-svn: 90951
-
Eli Friedman authored
PerformObjectArgumentInitialization from BuildCXXMemberCallExpr. llvm-svn: 90950
-
Eli Friedman authored
llvm-svn: 90949
-