- Feb 28, 2011
-
-
Argyrios Kyrtzidis authored
llvm-svn: 126614
-
Argyrios Kyrtzidis authored
llvm-svn: 126613
-
Argyrios Kyrtzidis authored
-Now it gets enabled with '-analyzer-checker=DeadStores'. -The driver passes the above flag by default. llvm-svn: 126612
-
Argyrios Kyrtzidis authored
llvm-svn: 126611
-
Argyrios Kyrtzidis authored
llvm-svn: 126610
-
Argyrios Kyrtzidis authored
Turns -analyzer-check-buffer-overflows into -analyzer-checker=core.experimental.Overflow llvm-svn: 126609
-
Argyrios Kyrtzidis authored
llvm-svn: 126608
-
Argyrios Kyrtzidis authored
llvm-svn: 126607
-
Argyrios Kyrtzidis authored
llvm-svn: 126606
-
Chris Lattner authored
llvm-svn: 126603
-
Chris Lattner authored
compound statements and break statements. This implements enough to handle PR9322 and rdar://6970405. llvm-svn: 126602
-
Anders Carlsson authored
llvm-svn: 126601
-
Chris Lattner authored
llvm-svn: 126600
-
Anders Carlsson authored
llvm-svn: 126598
-
Chris Lattner authored
live case of a switch statement when switching on a constant. This is terribly limited, but enough to handle the trivial example included. Before we would emit: define void @test1(i32 %i) nounwind { entry: %i.addr = alloca i32, align 4 store i32 %i, i32* %i.addr, align 4 switch i32 1, label %sw.epilog [ i32 1, label %sw.bb ] sw.bb: ; preds = %entry %tmp = load i32* %i.addr, align 4 %inc = add nsw i32 %tmp, 1 store i32 %inc, i32* %i.addr, align 4 br label %sw.epilog sw.epilog: ; preds = %sw.bb, %entry switch i32 0, label %sw.epilog3 [ i32 1, label %sw.bb1 ] sw.bb1: ; preds = %sw.epilog %tmp2 = load i32* %i.addr, align 4 %add = add nsw i32 %tmp2, 2 store i32 %add, i32* %i.addr, align 4 br label %sw.epilog3 sw.epilog3: ; preds = %sw.bb1, %sw.epilog ret void } now we emit: define void @test1(i32 %i) nounwind { entry: %i.addr = alloca i32, align 4 store i32 %i, i32* %i.addr, align 4 %tmp = load i32* %i.addr, align 4 %inc = add nsw i32 %tmp, 1 store i32 %inc, i32* %i.addr, align 4 ret void } This improves -O0 compile time (less IR to generate and shove through the code generator) and the clever linux kernel people found a way to fail to build if we don't do this optimization. This step isn't enough to handle the kernel case though. llvm-svn: 126597
-
Chris Lattner authored
llvm-svn: 126596
-
Chris Lattner authored
llvm-svn: 126595
-
Douglas Gregor authored
nested-name-specifier, e.g., T::template apply<U>:: represent the dependent template name specialization as a DependentTemplateSpecializationType, rather than a TemplateSpecializationType with a dependent TemplateName. llvm-svn: 126593
-
Chris Lattner authored
a bool + success into one tri-state integer, simplifying things. llvm-svn: 126592
-
- Feb 27, 2011
-
-
Douglas Gregor authored
specifiers such as typename T::template apply<U> Previously, we would turn T::template apply<U> into a TemplateSpecializationType. Then, we'd reprocess that TemplateSpecializationType and turn it into either a TemplateSpecializationType wrapped in an ElaboratedType (when we could resolve "apply" to a template declaration) or a DependentTemplateSpecializationType. We now produce the same ASTs but without generating the intermediate TemplateSpecializationType. The end goal here is to avoid generating TemplateSpecializationTypes with dependent template-names, ever. We're not there yet. llvm-svn: 126589
-
Oscar Fuentes authored
llvm-svn: 126572
-
- Feb 26, 2011
-
-
Alexis Hunt authored
This successfully performs constructor lookup and verifies that a delegating initializer is the only initializer present. This does not perform loop detection in the initialization, but it also doesn't codegen delegating constructors at all, so this won't cause runtime infinite loops yet. llvm-svn: 126552
-
John McCall authored
to give us a non-null return slot. llvm-svn: 126544
-
John McCall authored
send before making the call. Fixes rdar://problem/7854674 llvm-svn: 126543
-
John McCall authored
char-width agnostic. llvm-svn: 126542
-
John McCall authored
llvm-svn: 126541
-
John McCall authored
loading references as part of that. Use 'char' TBAA when accessing (immediate!) fields of a may_alias struct; fixes PR9307. llvm-svn: 126540
-
John McCall authored
don't let calls to such functions go down the normal type-checking path. Test this out with __builtin_classify_type and __builtin_constant_p. llvm-svn: 126539
-
Fariborz Jahanian authored
// rdar://9056351 llvm-svn: 126536
-
Fariborz Jahanian authored
block. // rdar://9055596 llvm-svn: 126535
-
- Feb 25, 2011
-
-
Ted Kremenek authored
llvm-svn: 126523
-
Ted Kremenek authored
llvm-svn: 126522
-
Daniel Dunbar authored
llvm-svn: 126513
-
Fariborz Jahanian authored
where ever such attribute causes an error diagnostic. llvm-svn: 126509
-
Douglas Gregor authored
DependentScopeDeclRefExpr. Plus, give NestedNameSpecifierLoc == and != operators, since we're going to need 'em elsewhere. llvm-svn: 126508
-
Chandler Carruth authored
silliness, and actually use the existing facilities of raw_ostream to do escaping. This will also hopefully fix an assert when building with signed char (MSVC I think). llvm-svn: 126505
-
Chandler Carruth authored
marking selected overloads into the callers. This allows a few callers to skip it altogether (they would have anyways because they weren't interested in successful overloads) or defer until after further checks take place much like the check required for PR9323 to avoid marking unused copy constructors. llvm-svn: 126503
-
Fariborz Jahanian authored
// rdar://9046492 llvm-svn: 126499
-
Douglas Gregor authored
pseudo-destructor expressions. Also, clean up some template-instantiation and type-checking issues with pseudo-destructors. llvm-svn: 126498
-
Fariborz Jahanian authored
llvm-svn: 126497
-