#
c4b251dc |
| 10-Jan-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Implement the missing pieces of Evaluate for _Complex types. With that complete, remove some code from CGExprConstant which is no longer necessary. While I'm here, a couple minor tweaks to _Complex
Implement the missing pieces of Evaluate for _Complex types. With that complete, remove some code from CGExprConstant which is no longer necessary. While I'm here, a couple minor tweaks to _Complex-in-C++. (Specifically, make _Complex types literal types, and don't warn for _Complex int.)
llvm-svn: 147840
show more ...
|
#
b1bc368c |
| 05-Jan-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Address Richard's review comments on r147561 (Evaluate support for address-of-label differences).
llvm-svn: 147631
|
#
fd5e54da |
| 04-Jan-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Add an APValue representation for the difference between two address-of-label expressions. Add support to Evaluate and CGExprConstant for generating/handling them. Remove the special-case for such
Add an APValue representation for the difference between two address-of-label expressions. Add support to Evaluate and CGExprConstant for generating/handling them. Remove the special-case for such differences in Expr::isConstantInitializer.
With that done, remove a bunch of buggy code from CGExprConstant for handling scalar expressions which is no longer necessary.
Fixes PR11705.
llvm-svn: 147561
show more ...
|
#
6e52514c |
| 27-Dec-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
constexpr: support for evaluation and codegen of typeid constants.
llvm-svn: 147290
|
#
5c9cd7a8 |
| 22-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a failure (which led to a crash) in constant emission code with vector compound literals.
llvm-svn: 147111
|
#
dae858ac |
| 07-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make sure we correctly zero-initialize unions containing a pointer to data member as the first field. PR11487.
llvm-svn: 146009
|
#
2d988f0f |
| 22-Nov-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Use static storage duration for file-scope compound literals, even when they appear in non-constant initializers in C++.
llvm-svn: 145087
|
#
027bf11e |
| 17-Nov-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Constant expression evaluation: add support for evaluation of member pointers and base-to-derived casts, and add proper handling of temporaries.
llvm-svn: 144926
|
Revision tags: llvmorg-3.0.0, llvmorg-3.0.0-rc4 |
|
#
ce40ad67 |
| 12-Nov-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Represent an APValue based on a Decl as that Decl, rather than a DeclRefExpr or MemberExpr which refers to it. As a side-effect, MemberExprs which refer to static member functions and static data mem
Represent an APValue based on a Decl as that Decl, rather than a DeclRefExpr or MemberExpr which refers to it. As a side-effect, MemberExprs which refer to static member functions and static data members are now emitted as constant expressions.
llvm-svn: 144468
show more ...
|
#
d62306a4 |
| 10-Nov-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Constant expression evaluation: support for evaluation of structs and unions of literal types, as well as derived-to-base casts for lvalues and derived-to-virtual-base casts.
llvm-svn: 144265
|
Revision tags: llvmorg-3.0.0-rc3 |
|
#
f3e9e43d |
| 07-Nov-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Constant expression evaluation: support for arrays.
llvm-svn: 143922
|
#
ffc8ca2d |
| 07-Nov-2011 |
John McCall <rjmccall@apple.com> |
Rip out CK_GetObjCProperty.
llvm-svn: 143910
|
Revision tags: llvmorg-3.0.0-rc2 |
|
#
fcec630a |
| 01-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix the representation of wide strings in the AST and IR so that it uses the native representation of integers for the elements. This fixes a bunch of nastiness involving treating wide strings as a
Fix the representation of wide strings in the AST and IR so that it uses the native representation of integers for the elements. This fixes a bunch of nastiness involving treating wide strings as a series of bytes.
Patch by Seth Cantrell.
llvm-svn: 143417
show more ...
|
#
7b553f1b |
| 29-Oct-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Rename Expr::Evaluate to Expr::EvaluateAsRValue to make it clear that it will implicitly perform an lvalue-to-rvalue conversion if used on an lvalue expression. Also improve the documentation of Expr
Rename Expr::Evaluate to Expr::EvaluateAsRValue to make it clear that it will implicitly perform an lvalue-to-rvalue conversion if used on an lvalue expression. Also improve the documentation of Expr::Evaluate* to indicate which of them will accept expressions with side-effects.
llvm-svn: 143263
show more ...
|
#
9190e19b |
| 24-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Don't try to emit CK_LValueBitCast casts as constants. PR9558.
llvm-svn: 142863
|
Revision tags: llvmorg-3.0.0-rc1 |
|
#
f0c267e6 |
| 14-Oct-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Provide half floating point support as a storage only type. Lack of half FP was a regression compared to llvm-gcc.
llvm-svn: 142016
|
#
fde961db |
| 14-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
PR11124: Don't overwrite memory outside of a base class when performing zero-initialization before running its constructor.
llvm-svn: 141933
|
#
caf3390d |
| 10-Oct-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Constant expression evaluation refactoring: - Remodel Expr::EvaluateAsInt to behave like the other EvaluateAs* functions, and add Expr::EvaluateKnownConstInt to capture the current fold-or-assert
Constant expression evaluation refactoring: - Remodel Expr::EvaluateAsInt to behave like the other EvaluateAs* functions, and add Expr::EvaluateKnownConstInt to capture the current fold-or-assert behaviour. - Factor out evaluation of bitfield bit widths. - Fix a few places which would evaluate an expression twice: once to determine whether it is a constant expression, then again to get the value.
llvm-svn: 141561
show more ...
|
#
aa347f93 |
| 23-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Removing a bunch of dead returns/breaks after llvm_unreachables.
llvm-svn: 140407
|
#
83d382b1 |
| 23-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Switch assert(0/false) llvm_unreachable.
llvm-svn: 140367
|
#
6b9c41ea |
| 19-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add list initialization for complex numbers in C. Essentially, this allows "_Complex float x = {1.0f, 2.0f};". See changes to docs/LanguageExtensions.html for a longer description.
<rdar://problem
Add list initialization for complex numbers in C. Essentially, this allows "_Complex float x = {1.0f, 2.0f};". See changes to docs/LanguageExtensions.html for a longer description.
<rdar://problem/9397672>.
llvm-svn: 140090
show more ...
|
#
2d637d2e |
| 10-Sep-2011 |
John McCall <rjmccall@apple.com> |
Rename the ARC cast kinds to start with "ARC".
llvm-svn: 139466
|
#
cd78e805 |
| 10-Sep-2011 |
John McCall <rjmccall@apple.com> |
When converting a block pointer to an Objective-C pointer type, extend the lifetime of the block by copying it to the heap, or else we'll get a dangling reference because the code working with the no
When converting a block pointer to an Objective-C pointer type, extend the lifetime of the block by copying it to the heap, or else we'll get a dangling reference because the code working with the non-block-typed object will not know it needs to copy.
There is some danger here, e.g. with assigning a block literal to an unsafe variable, but, well, it's an unsafe variable.
llvm-svn: 139451
show more ...
|
#
9320b87c |
| 09-Sep-2011 |
John McCall <rjmccall@apple.com> |
Give conversions of block pointers to ObjC pointers a different cast kind than conversions of C pointers to ObjC pointers. In order to ensure that we've caught every case, add asserts to CastExpr th
Give conversions of block pointers to ObjC pointers a different cast kind than conversions of C pointers to ObjC pointers. In order to ensure that we've caught every case, add asserts to CastExpr that strictly determine which cast kind is used for which kind of bit cast.
llvm-svn: 139352
show more ...
|
#
e8bbc121 |
| 02-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Extend the ASTContext constructor to delay the initialization of builtin types (When requested). This is another step toward making ASTUnit build the ASTContext as needed when loading an AST file, ra
Extend the ASTContext constructor to delay the initialization of builtin types (When requested). This is another step toward making ASTUnit build the ASTContext as needed when loading an AST file, rather than doing so after the fact. No actual functionality change (yet).
llvm-svn: 138985
show more ...
|