| #
e30752c9 |
| 09-Oct-2012 |
Richard Smith <[email protected]> |
-fcatch-undefined-behavior: emit calls to the runtime library whenever one of the checks fails.
llvm-svn: 165536
|
| #
1ca66919 |
| 30-Sep-2012 |
Benjamin Kramer <[email protected]> |
CodeGen: Copy tail padding when we're not dealing with a trivial copy assign or move assign operator.
This fixes a regression from r162254, the optimizer has problems reasoning about the smaller mem
CodeGen: Copy tail padding when we're not dealing with a trivial copy assign or move assign operator.
This fixes a regression from r162254, the optimizer has problems reasoning about the smaller memcpy as it's often not safe to widen a store but making it smaller is.
llvm-svn: 164917
show more ...
|
| #
22695fce |
| 28-Sep-2012 |
Dan Gohman <[email protected]> |
Add basic support for adding !tbaa.struct metadata on llvm.memcpy calls for struct assignment.
llvm-svn: 164853
|
| #
4d1458ed |
| 08-Sep-2012 |
Richard Smith <[email protected]> |
-fcatch-undefined-behavior: Factor emission of the creation of, and branch to, the trap BB out of the individual checks and into a common function, to prepare for making this code call into a runtime
-fcatch-undefined-behavior: Factor emission of the creation of, and branch to, the trap BB out of the individual checks and into a common function, to prepare for making this code call into a runtime library. Rename the existing EmitCheck to EmitTypeCheck to clarify it and to move it out of the way of the new EmitCheck.
llvm-svn: 163451
show more ...
|
| #
34866c77 |
| 31-Aug-2012 |
Eli Friedman <[email protected]> |
Change the representation of builtin functions in the AST (__builtin_* etc.) so that it isn't possible to take their address. Specifically, introduce a new type to represent a reference to a builtin
Change the representation of builtin functions in the AST (__builtin_* etc.) so that it isn't possible to take their address. Specifically, introduce a new type to represent a reference to a builtin function, and a new cast kind to convert it to a function pointer in the operand of a call. Fixes PR13195.
llvm-svn: 162962
show more ...
|
| #
69d0d262 |
| 24-Aug-2012 |
Richard Smith <[email protected]> |
New -fcatch-undefined-behavior features: * when checking that a pointer or reference refers to appropriate storage for a type, also check the alignment and perform a null check * check that referen
New -fcatch-undefined-behavior features: * when checking that a pointer or reference refers to appropriate storage for a type, also check the alignment and perform a null check * check that references are bound to appropriate storage * check that 'this' has appropriate storage in member accesses and member function calls
llvm-svn: 162523
show more ...
|
| #
f1249929 |
| 21-Aug-2012 |
John McCall <[email protected]> |
When performing a trivial copy of a C++ type, we must be careful not to overwrite objects that might have been allocated into the type's tail padding. This patch is missing some potential optimizati
When performing a trivial copy of a C++ type, we must be careful not to overwrite objects that might have been allocated into the type's tail padding. This patch is missing some potential optimizations where the destination is provably a complete object, but it's necessary for correctness.
Patch by Jonathan Sauer.
llvm-svn: 162254
show more ...
|
| #
4e8ca4fa |
| 02-Jul-2012 |
John McCall <[email protected]> |
Significantly simplify CGExprAgg's logic about ignored results: if we want to ignore a result, the Dest will be null. Otherwise, we must copy into it. This means we need to ensure a slot when loadi
Significantly simplify CGExprAgg's logic about ignored results: if we want to ignore a result, the Dest will be null. Otherwise, we must copy into it. This means we need to ensure a slot when loading from a volatile l-value.
With all that in place, fix a bug with chained assignments into __block variables of aggregate type where we were losing insight into the actual source of the value during the second assignment.
llvm-svn: 159630
show more ...
|
| #
be302454 |
| 15-Jun-2012 |
James Dennett <[email protected]> |
Documentation cleanup: * Escaped Objective-C @keywords in Doxygen comments; * Documented more accurate \params; * Exposed some more summaries using \brief.
llvm-svn: 158559
|
| #
40ed2973 |
| 06-Jun-2012 |
David Blaikie <[email protected]> |
Revert Decl's iterators back to pointer value_type rather than reference value_type
In addition, I've made the pointer and reference typedef 'void' rather than T* just so they can't get misused. I w
Revert Decl's iterators back to pointer value_type rather than reference value_type
In addition, I've made the pointer and reference typedef 'void' rather than T* just so they can't get misused. I would've omitted them entirely but std::distance likes them to be there even if it doesn't use them.
This rolls back r155808 and r155869.
Review by Doug Gregor incorporating feedback from Chandler Carruth.
llvm-svn: 158104
show more ...
|
|
Revision tags: llvmorg-3.1.0, llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2 |
|
| #
2d7c57ec |
| 30-Apr-2012 |
David Blaikie <[email protected]> |
Remove the ref/value inconsistency in filter_decl_iterator.
filter_decl_iterator had a weird mismatch where both op* and op-> returned T* making it difficult to generalize this filtering behavior in
Remove the ref/value inconsistency in filter_decl_iterator.
filter_decl_iterator had a weird mismatch where both op* and op-> returned T* making it difficult to generalize this filtering behavior into a reusable library of any kind.
This change errs on the side of value, making op-> return T* and op* return T&.
(reviewed by Richard Smith)
llvm-svn: 155808
show more ...
|
|
Revision tags: llvmorg-3.1.0-rc1 |
|
| #
1e303eef |
| 17-Apr-2012 |
Chad Rosier <[email protected]> |
Fix case where the alignment is overaligned, per Eli's suggestion. rdar://11220251
llvm-svn: 154893
|
| #
a750d46c |
| 17-Apr-2012 |
Chad Rosier <[email protected]> |
Make sure EmitMoveFromReturnSlot is passing the correct alignment to EmitFinalDestCopy (and thus pass EmitAggregateCopy the correct alignment). rdar://11220251
llvm-svn: 154883
|
| #
7f1ff600 |
| 16-Apr-2012 |
Eli Friedman <[email protected]> |
Propagate alignment on lvalues through EmitLValueForField. PR12395.
llvm-svn: 154789
|
| #
9ec1e48b |
| 15-Apr-2012 |
Richard Smith <[email protected]> |
PR12226: don't generate wrong code if a braced string literal is used to initialize an array of unsigned char. Outside C++11 mode, this bug was benign, and just resulted in us emitting a constant whi
PR12226: don't generate wrong code if a braced string literal is used to initialize an array of unsigned char. Outside C++11 mode, this bug was benign, and just resulted in us emitting a constant which was double the required length, padded with 0s. In C++11, it resulted in us generating an array whose first element was something like i8 ptrtoint ([n x i8]* @str to i8).
llvm-svn: 154756
show more ...
|
| #
615ed1a3 |
| 29-Mar-2012 |
Chad Rosier <[email protected]> |
Revert r153613 as it's causing large compile-time regressions on the nightly testers.
llvm-svn: 153660
|
| #
1a0877f9 |
| 28-Mar-2012 |
John McCall <[email protected]> |
When we can't prove that the target of an aggregate copy is a complete object, the memcpy needs to use the data size of the structure instead of its sizeof() value. Fixes PR12204.
llvm-svn: 153613
|
| #
bbafb8a7 |
| 11-Mar-2012 |
David Blaikie <[email protected]> |
Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST).
The member variable is always "LangOpts" and the member function is always "getLangOpts".
Reviewed by Chris La
Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST).
The member variable is always "LangOpts" and the member function is always "getLangOpts".
Reviewed by Chris Lattner
llvm-svn: 152536
show more ...
|
| #
113bee05 |
| 10-Mar-2012 |
John McCall <[email protected]> |
Remove BlockDeclRefExpr and introduce a bit on DeclRefExpr to track whether the referenced declaration comes from an enclosing local context. I'm amenable to suggestions about the exact meaning of t
Remove BlockDeclRefExpr and introduce a bit on DeclRefExpr to track whether the referenced declaration comes from an enclosing local context. I'm amenable to suggestions about the exact meaning of this bit.
llvm-svn: 152491
show more ...
|
| #
71335059 |
| 10-Mar-2012 |
John McCall <[email protected]> |
Unify the BlockDeclRefExpr and DeclRefExpr paths so that we correctly emit loads of BlockDeclRefExprs even when they don't qualify as ODR-uses. I think I'm adequately convinced that BlockDeclRefExpr
Unify the BlockDeclRefExpr and DeclRefExpr paths so that we correctly emit loads of BlockDeclRefExprs even when they don't qualify as ODR-uses. I think I'm adequately convinced that BlockDeclRefExpr can die.
llvm-svn: 152479
show more ...
|
| #
576cbd03 |
| 29-Feb-2012 |
Eli Friedman <[email protected]> |
Make sure list-initialization of arrays works correctly in explicit type conversions. PR12121.
llvm-svn: 151674
|
| #
f2e0a307 |
| 25-Feb-2012 |
Sebastian Redl <[email protected]> |
Fix crashers on unexpected std::initializer_list layouts. Found by inspection.
llvm-svn: 151456
|
| #
cb3785e4 |
| 24-Feb-2012 |
Eli Friedman <[email protected]> |
Fix a stupid mistake in r151133. Reported to me by Joerg Sonnenberger.
llvm-svn: 151407
|
| #
91f5ae50 |
| 23-Feb-2012 |
Eli Friedman <[email protected]> |
Try to handle qualifiers more consistently for array InitListExprs. Fixes <rdar://problem/10907510>, and makes the ASTs a bit more self-consistent.
(I've chosen to keep the qualifiers, but it isn't
Try to handle qualifiers more consistently for array InitListExprs. Fixes <rdar://problem/10907510>, and makes the ASTs a bit more self-consistent.
(I've chosen to keep the qualifiers, but it isn't a strong preference; if anyone prefers removing them, please yell.)
llvm-svn: 151229
show more ...
|
| #
91d5bb1e |
| 22-Feb-2012 |
Eli Friedman <[email protected]> |
Make sure null initialization in arrays works correctly with ARC types. <rdar://problem/10907547>.
llvm-svn: 151133
|