History log of /llvm-project-15.0.7/clang/lib/CodeGen/CGExprConstant.cpp (Results 201 – 225 of 479)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# d62306a4 10-Nov-2011 Richard Smith <[email protected]>

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 <[email protected]>

Constant expression evaluation: support for arrays.

llvm-svn: 143922


# ffc8ca2d 07-Nov-2011 John McCall <[email protected]>

Rip out CK_GetObjCProperty.

llvm-svn: 143910


Revision tags: llvmorg-3.0.0-rc2
# fcec630a 01-Nov-2011 Eli Friedman <[email protected]>

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 <[email protected]>

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 <[email protected]>

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 <[email protected]>

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 <[email protected]>

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 <[email protected]>

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 <[email protected]>

Removing a bunch of dead returns/breaks after llvm_unreachables.

llvm-svn: 140407


# 83d382b1 23-Sep-2011 David Blaikie <[email protected]>

Switch assert(0/false) llvm_unreachable.

llvm-svn: 140367


# 6b9c41ea 19-Sep-2011 Eli Friedman <[email protected]>

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 <[email protected]>

Rename the ARC cast kinds to start with "ARC".

llvm-svn: 139466


# cd78e805 10-Sep-2011 John McCall <[email protected]>

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 <[email protected]>

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 <[email protected]>

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 ...


# 22653bac 30-Aug-2011 Sebastian Redl <[email protected]>

Declare and define implicit move constructor and assignment operator.

This makes the code duplication of implicit special member handling even worse,
but the cleanup will have to come later. For now

Declare and define implicit move constructor and assignment operator.

This makes the code duplication of implicit special member handling even worse,
but the cleanup will have to come later. For now, this works.
Follow-up with tests for explicit defaulting and enabling the __has_feature
flag to come.

llvm-svn: 138821

show more ...


# 750a5916 23-Aug-2011 Eli Friedman <[email protected]>

Cleanup to use helper.

llvm-svn: 138369


# 0e62c1cc 23-Jul-2011 Chris Lattner <[email protected]>

remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports
them into the clang namespace.

llvm-svn: 135852


# ed8db7d9 21-Jul-2011 Jay Foad <[email protected]>

Convert ConstantExpr::getGetElementPtr and
ConstantExpr::getInBoundsGetElementPtr to use ArrayRef.

llvm-svn: 135673


# 2192fe50 18-Jul-2011 Chris Lattner <[email protected]>

de-constify llvm::Type, patch by David Blaikie!

llvm-svn: 135370


# 7c454bb8 15-Jul-2011 John McCall <[email protected]>

Create a new expression node, SubstNonTypeTemplateParmExpr,
to represent a fully-substituted non-type template parameter.
This should improve source fidelity, as well as being generically
useful for

Create a new expression node, SubstNonTypeTemplateParmExpr,
to represent a fully-substituted non-type template parameter.
This should improve source fidelity, as well as being generically
useful for diagnostics and such.

llvm-svn: 135243

show more ...


# 7c57be3e 11-Jul-2011 Jay Foad <[email protected]>

De-constify Types in StructType::get() and TargetData::getIntPtrType().

llvm-svn: 134893


# 4db5c3c8 07-Jul-2011 John McCall <[email protected]>

In ARC, reclaim all return values of retainable type, not just those
where we have an immediate need of a retained value.

As an exception, don't do this when the call is made as the immediate
operan

In ARC, reclaim all return values of retainable type, not just those
where we have an immediate need of a retained value.

As an exception, don't do this when the call is made as the immediate
operand of a __bridge retain. This is more in the way of a workaround
than an actual guarantee, so it's acceptable to be brittle here.

rdar://problem/9504800

llvm-svn: 134605

show more ...


# fe31481f 21-Jun-2011 Douglas Gregor <[email protected]>

Introduce a new AST node describing reference binding to temporaries.

MaterializeTemporaryExpr captures a reference binding to a temporary
value, making explicit that the temporary value (a prvalue)

Introduce a new AST node describing reference binding to temporaries.

MaterializeTemporaryExpr captures a reference binding to a temporary
value, making explicit that the temporary value (a prvalue) needs to
be materialized into memory so that its address can be used. The
intended AST invariant here is that a reference will always bind to a
glvalue, and MaterializeTemporaryExpr will be used to convert prvalues
into glvalues for that binding to happen. For example, given

const int& r = 1.0;

The initializer of "r" will be a MaterializeTemporaryExpr whose
subexpression is an implicit conversion from the double literal "1.0"
to an integer value.

IR generation benefits most from this new node, since it was
previously guessing (badly) when to materialize temporaries for the
purposes of reference binding. There are likely more refactoring and
cleanups we could perform there, but the introduction of
MaterializeTemporaryExpr fixes PR9565, a case where IR generation
would effectively bind a const reference directly to a bitfield in a
struct. Addresses <rdar://problem/9552231>.

llvm-svn: 133521

show more ...


12345678910>>...20