| #
2f152638 |
| 07-Oct-2013 |
Matt Arsenault <[email protected]> |
Fix objectsize tests after r192117
llvm-svn: 192120
|
| #
2d84e842 |
| 02-Oct-2013 |
Nick Lewycky <[email protected]> |
Thread a SourceLocation into the EmitCheck for "load_invalid_value". This occurs when scalars are loaded / undergo lvalue-to-rvalue conversion.
llvm-svn: 191808
|
| #
5fa40c3b |
| 01-Oct-2013 |
Nick Lewycky <[email protected]> |
No functionality change. Reflow lines that could fit on one line. Break lines that had 80-column violations. Remove spurious emacs mode markers on .cpp files.
llvm-svn: 191797
|
| #
a98799fe |
| 11-Sep-2013 |
Evgeniy Stepanov <[email protected]> |
Fix 2 cases of uninitialized reads of an invalid PresumedLoc.
The code in CGExpr was added back in 2012 (r165536) but not exercised in tests until recently.
Detected on the MemorySanitizer bootstra
Fix 2 cases of uninitialized reads of an invalid PresumedLoc.
The code in CGExpr was added back in 2012 (r165536) but not exercised in tests until recently.
Detected on the MemorySanitizer bootstrap bot.
llvm-svn: 190521
show more ...
|
| #
0ebf1bb1 |
| 30-Aug-2013 |
Yunzhong Gao <[email protected]> |
Revert r189649 because it was breaking sanitizer bots.
llvm-svn: 189660
|
| #
be8d7ba9 |
| 30-Aug-2013 |
Yunzhong Gao <[email protected]> |
Fixing a bug where debug info for a local variable gets emitted at file scope.
The patch was discussed in Phabricator. See: http://llvm-reviews.chandlerc.com/D1281
llvm-svn: 189649
|
| #
ebe87e1c |
| 27-Aug-2013 |
David Blaikie <[email protected]> |
Revert "PR14569: Omit debug info for thunks"
This reverts commit r189320.
Alexey Samsonov and Dmitry Vyukov presented some arguments for keeping these around - though it still seems like those task
Revert "PR14569: Omit debug info for thunks"
This reverts commit r189320.
Alexey Samsonov and Dmitry Vyukov presented some arguments for keeping these around - though it still seems like those tasks could be solved by a tool just using the symbol table. In a very small number of cases, thunks may be inlined & debug info might be able to save profilers & similar tools from misclassifying those cases as part of the caller.
The extra changes here plumb through the VarDecl for various cases to CodeGenFunction - this provides better fidelity through a few APIs but generally just causes the CGF::StartFunction to fallback to using the name of the IR function as the name in the debug info.
The changes to debug-info-global-ctor-dtor.cpp seem like goodness. The two names that go missing (in favor of only emitting those names as linkage names) are names that can be demangled - emitting them only as the linkage name should encourage tools to do just that.
Again, thanks to Dinesh Dwivedi for investigation/work on this issue.
llvm-svn: 189421
show more ...
|
| #
8d6b19a5 |
| 26-Aug-2013 |
Wei Pan <[email protected]> |
Handle predefined expression for a captured statement
- __func__ or __FUNCTION__ returns captured statement's parent function name, not the one compiler generated.
Differential Revision: http://l
Handle predefined expression for a captured statement
- __func__ or __FUNCTION__ returns captured statement's parent function name, not the one compiler generated.
Differential Revision: http://llvm-reviews.chandlerc.com/D1491
Reviewed by bkramer
llvm-svn: 189219
show more ...
|
| #
90f54229 |
| 21-Aug-2013 |
Benjamin Kramer <[email protected]> |
Sema: Use the right type for PredefinedExpr when it's in a lambda.
1. We now print the return type of lambdas and return type deduced functions as "auto". Trailing return types with decltype print t
Sema: Use the right type for PredefinedExpr when it's in a lambda.
1. We now print the return type of lambdas and return type deduced functions as "auto". Trailing return types with decltype print the underlying type. 2. Use the lambda or block scope for the PredefinedExpr type instead of the parent function. This fixes PR16946, a strange mismatch between type of the expression and the actual result. 3. Verify the type in CodeGen. 4. The type for blocks is still wrong. They are numbered and the name is not known until CodeGen.
llvm-svn: 188900
show more ...
|
| #
bbecd096 |
| 15-Aug-2013 |
David Majnemer <[email protected]> |
CodeGen: __uuidof should work even with an incomplete _GUID type
Summary: We would crash in CodeGen::CodeGenModule::EmitUuidofInitializer because our attempt to enter CodeGen::CodeGenModule::EmitCon
CodeGen: __uuidof should work even with an incomplete _GUID type
Summary: We would crash in CodeGen::CodeGenModule::EmitUuidofInitializer because our attempt to enter CodeGen::CodeGenModule::EmitConstantValue will be foiled: the type of the constant value is incomplete.
Instead, create an unnamed type with the proper layout on all platforms. Punt the problem of wrongly defined struct _GUID types to the user. (It's impossible because the TU may never get to see the type and thus we can't verify that it is suitable.)
This fixes PR16856.
Reviewers: rsmith, rnk, thakis
Reviewed By: rnk
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1375
llvm-svn: 188481
show more ...
|
| #
178a8df6 |
| 08-Aug-2013 |
Filipe Cabecinhas <[email protected]> |
UBSan: Fix alignment checks emitted in downcasts.
Summary: UBSan was checking for alignment of the derived class on the pointer to the base class, before converting. With some class hierarchies, thi
UBSan: Fix alignment checks emitted in downcasts.
Summary: UBSan was checking for alignment of the derived class on the pointer to the base class, before converting. With some class hierarchies, this could generate false positives.
Added test-case.
llvm-svn: 187948
show more ...
|
| #
ca64c3e1 |
| 26-Jul-2013 |
Adrian Prantl <[email protected]> |
Debug Info / EmitCallArgs: arguments may modify the debug location. Restore it after each argument is emitted. This fixes the scope info for inlined subroutines inside of function argument expression
Debug Info / EmitCallArgs: arguments may modify the debug location. Restore it after each argument is emitted. This fixes the scope info for inlined subroutines inside of function argument expressions. (E.g., anything STL).
rdar://problem/12592135
llvm-svn: 187240
show more ...
|
| #
99e7927d |
| 26-Jul-2013 |
Craig Topper <[email protected]> |
Remove trailing whitespace.
llvm-svn: 187189
|
| #
75807f23 |
| 20-Jul-2013 |
Eli Friedman <[email protected]> |
Make IgnoreParens() look through ChooseExprs.
This is the same way GenericSelectionExpr works, and it's generally a more consistent approach.
A large part of this patch is devoted to caching the va
Make IgnoreParens() look through ChooseExprs.
This is the same way GenericSelectionExpr works, and it's generally a more consistent approach.
A large part of this patch is devoted to caching the value of the condition of a ChooseExpr; it's needed to avoid threading an ASTContext into IgnoreParens().
Fixes <rdar://problem/14438917>.
llvm-svn: 186738
show more ...
|
| #
be4504df |
| 11-Jul-2013 |
Eli Friedman <[email protected]> |
Simplify atomic load/store IRGen.
Also fixes a couple minor bugs along the way; see testcases.
llvm-svn: 186049
|
|
Revision tags: llvmorg-3.3.1-rc1 |
|
| #
5603df45 |
| 05-Jul-2013 |
Craig Topper <[email protected]> |
Use SmallVectorImpl& for function arguments instead of SmallVector.
llvm-svn: 185715
|
| #
c7ad5c4e |
| 28-Jun-2013 |
Eli Friedman <[email protected]> |
Delete dead code.
llvm-svn: 185119
|
| #
a509f2fd |
| 14-Jun-2013 |
Richard Smith <[email protected]> |
Emit initializers for static-storage-duration temporaries as constants where possible.
llvm-svn: 183967
|
| #
a1c9d4d9 |
| 12-Jun-2013 |
Richard Smith <[email protected]> |
Simplify: we don't need any special-case lifetime extension when initializing declarations of reference type; they're handled by the general case handling of MaterializeTemporaryExpr.
llvm-svn: 1838
Simplify: we don't need any special-case lifetime extension when initializing declarations of reference type; they're handled by the general case handling of MaterializeTemporaryExpr.
llvm-svn: 183875
show more ...
|
| #
cc1b96d3 |
| 12-Jun-2013 |
Richard Smith <[email protected]> |
PR12086, PR15117
Introduce CXXStdInitializerListExpr node, representing the implicit construction of a std::initializer_list<T> object from its underlying array. The AST representation of such an ex
PR12086, PR15117
Introduce CXXStdInitializerListExpr node, representing the implicit construction of a std::initializer_list<T> object from its underlying array. The AST representation of such an expression goes from an InitListExpr with a flag set, to a CXXStdInitializerListExpr containing a MaterializeTemporaryExpr containing an InitListExpr (possibly wrapped in a CXXBindTemporaryExpr).
This more detailed representation has several advantages, the most important of which is that the new MaterializeTemporaryExpr allows us to directly model lifetime extension of the underlying temporary array. Using that, this patch *drastically* simplifies the IR generation of this construct, provides IR generation support for nested global initializer_list objects, fixes several bugs where the destructors for the underlying array would accidentally not get invoked, and provides constant expression evaluation support for std::initializer_list objects.
llvm-svn: 183872
show more ...
|
| #
736a947b |
| 12-Jun-2013 |
Richard Smith <[email protected]> |
Reapply r183721, reverted in r183776, with a fix for a bug in the former (we were lacking ExprWithCleanups nodes in some cases where the new approach to lifetime extension needed them).
Original com
Reapply r183721, reverted in r183776, with a fix for a bug in the former (we were lacking ExprWithCleanups nodes in some cases where the new approach to lifetime extension needed them).
Original commit message:
Rework IR emission for lifetime-extended temporaries. Instead of trying to walk into the expression and dig out a single lifetime-extended entity and manually pull its cleanup outside the expression, instead keep a list of the cleanups which we'll need to emit when we get to the end of the full-expression. Also emit those cleanups early, as EH-only cleanups, to cover the case that the full-expression does not terminate normally. This allows IR generation to properly model temporary lifetime when multiple temporaries are extended by the same declaration.
We have a pre-existing bug where an exception thrown from a temporary's destructor does not clean up lifetime-extended temporaries created in the same expression and extended to automatic storage duration; that is not fixed by this patch.
llvm-svn: 183859
show more ...
|
| #
4a28f534 |
| 11-Jun-2013 |
Richard Smith <[email protected]> |
Revert r183721. It caused cleanups to be delayed too long in some cases. Testcase to follow.
llvm-svn: 183776
|
| #
8981d6c9 |
| 11-Jun-2013 |
Benjamin Kramer <[email protected]> |
Silence GCC warning.
llvm-svn: 183742
|
| #
7c5d4dce |
| 11-Jun-2013 |
Richard Smith <[email protected]> |
Rework IR emission for lifetime-extended temporaries. Instead of trying to walk into the expression and dig out a single lifetime-extended entity and manually pull its cleanup outside the expression,
Rework IR emission for lifetime-extended temporaries. Instead of trying to walk into the expression and dig out a single lifetime-extended entity and manually pull its cleanup outside the expression, instead keep a list of the cleanups which we'll need to emit when we get to the end of the full-expression. Also emit those cleanups early, as EH-only cleanups, to cover the case that the full-expression does not terminate normally. This allows IR generation to properly model temporary lifetime when multiple temporaries are extended by the same declaration.
We have a pre-existing bug where an exception thrown from a temporary's destructor does not clean up lifetime-extended temporaries created in the same expression and extended to automatic storage duration; that is not fixed by this patch.
llvm-svn: 183721
show more ...
|
|
Revision tags: llvmorg-3.3.0 |
|
| #
d943fc34 |
| 04-Jun-2013 |
Richard Smith <[email protected]> |
Remove some unreachable (and wrong) code and replace it with an assertion.
llvm-svn: 183206
|