| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
types. Patch from Dmitri Rubinstein!
llvm-svn: 145776
|
|
|
|
|
|
|
|
|
|
|
|
| |
mutable member and a constant initializer. We'd previously promoted such
variables to global constants, resulting in nasal demons if the mutable member
was modified.
This is only a temporary fix. The subtle interplay between isConstantInitializer
and CGExprConstant is very bug-prone; there are some other issues in this area
which I will be addressing in subsequent, more major reworking of this code.
llvm-svn: 145654
|
|
|
|
| |
llvm-svn: 145581
|
|
|
|
|
|
|
|
|
| |
consider the _<width> variants as well, which we'll see if we're
performing the type checking in a template instantiation where the
call expression itself was originally not type-dependent. Fixes
PR11411.
llvm-svn: 145248
|
|
|
|
|
|
| |
array of objects with non-trivial destructors. PR11365.
llvm-svn: 145203
|
|
|
|
| |
llvm-svn: 145189
|
|
|
|
|
|
| |
This supports single-element initializer lists for references according to DR1288, as well as creating temporaries and binding to them for other initializer lists.
llvm-svn: 145186
|
|
|
|
| |
llvm-svn: 145093
|
|
|
|
|
|
| |
appear in non-constant initializers in C++.
llvm-svn: 145087
|
|
|
|
|
|
| |
type for a function returning a struct containing only a pointer. Handle the edge case of a struct containing only a float or double plus some dead padding instead of asserting.
llvm-svn: 144960
|
|
|
|
|
|
| |
and base-to-derived casts, and add proper handling of temporaries.
llvm-svn: 144926
|
|
|
|
| |
llvm-svn: 144761
|
|
|
|
|
|
| |
lvalues. PR11376.
llvm-svn: 144745
|
|
|
|
|
|
| |
literals of array type, materialise a temporary.
llvm-svn: 144483
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 144428
|
|
|
|
|
|
| |
guarantees alignment up to the ABI alignment of the return type.
llvm-svn: 144364
|
|
|
|
|
|
|
| |
enclosing full-expressions. It is somewhat amazing that
this hasn't come up as a problem before.
llvm-svn: 144362
|
|
|
|
|
|
|
|
|
|
| |
need to provide a 'dominating IP' which is guaranteed to
dominate the (de)activation point but which cannot be avoided
along any execution path from the (de)activation point to
the push-point of the cleanup. Using the entry block is
bad mojo.
llvm-svn: 144276
|
|
|
|
|
|
|
|
|
|
|
|
| |
a previously-inactive cleanup, not only do we need a
flag variable, but we should also force the cleanup to
query the flag variable. However, we only need to do
this when we're activating in a context that's
conditionally executed; otherwise, we may safely
assume that the cleanup is dominated by the activation
point.
llvm-svn: 144271
|
|
|
|
| |
llvm-svn: 144185
|
|
|
|
| |
llvm-svn: 144112
|
|
|
|
|
|
| |
to go through the driver.
llvm-svn: 143791
|
|
|
|
|
|
| |
structs. Original behavior can be restored using -fno-limit-debug-info.
llvm-svn: 143733
|
|
|
|
|
|
|
| |
and don't try to destroy them, either. Fixes
<rdar://problem/10228639>.
llvm-svn: 143584
|
|
|
|
|
|
|
| |
rvale-references are captured by reference
in blocks. // rdar://9971124.
llvm-svn: 143583
|
|
|
|
|
|
| |
c++ object into block descriptor. // rdar://9971124
llvm-svn: 143475
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
In this case, temporary value is copied into block descriptor
as their own copy to work on. // rdar://9971124
llvm-svn: 143399
|
|
|
|
|
|
| |
for concrete type in -flimit-debug-info mode. This fixes some of the failures from bs15503.exp tests in gdb testsuite.
llvm-svn: 143227
|
|
|
|
|
|
|
|
|
|
| |
are present in all the necessary places:
In constant expression evaluation, evaluate lvalues as lvalues and rvalues as
rvalues. Remove special case for caching reference initialization and fix a
cyclic initialization crash in the process.
llvm-svn: 143204
|
|
|
|
|
|
| |
a binary operator involving a dependently-typed overload set.
llvm-svn: 143172
|
|
|
|
|
|
| |
from r143097.
llvm-svn: 143098
|
|
|
|
| |
llvm-svn: 142873
|
|
|
|
| |
llvm-svn: 142863
|
|
|
|
|
|
|
|
| |
for the function type. Update a testcase accordingly.
Patch initially by Anders Waldenborg!
llvm-svn: 142700
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
class declaration which forces any such class and any
class that inherits from such a class to have their
typeinfo symbols be marked as weak.
// rdar://10246395
A test/CodeGenCXX/weak-extern-typeinfo.cpp
M lib/Sema/SemaDeclCXX.cpp
M lib/Sema/SemaDeclAttr.cpp
M lib/CodeGen/CGRTTI.cpp
llvm-svn: 142693
|
|
|
|
|
|
| |
expressions. PR10582.
llvm-svn: 142047
|
|
|
|
| |
llvm-svn: 142017
|
|
|
|
|
|
| |
zero-initialization before running its constructor.
llvm-svn: 141933
|
|
|
|
|
|
| |
-std=c++0x. Patch by Ahmed Charles!
llvm-svn: 141900
|
|
|
|
|
|
|
| |
to check whether the constructor is accessible. Fixes
<rdar://problem/10202900>.
llvm-svn: 141588
|
|
|
|
|
|
|
|
| |
definition. Assert this. Change IR generation to not try to
aggressively emit the IR translation of a record during its
own definition. Fixes PR10912.
llvm-svn: 141350
|
|
|
|
|
|
| |
have an AST verifier).
llvm-svn: 140620
|
|
|
|
| |
llvm-svn: 140508
|
|
|
|
| |
llvm-svn: 140503
|
|
|
|
|
|
|
|
|
| |
Allow empty initializer lists for scalars, which mean value-initialization.
Constant evaluation for single-element and empty initializer lists for scalars.
Codegen for empty initializer lists for scalars.
Test case comes in next commit.
llvm-svn: 140459
|
|
|
|
|
|
|
| |
they still need the logic to cope with array member
initialization. Fixes PR10720.
llvm-svn: 140302
|
|
|
|
|
|
| |
conversions (rather than just call-arguments).
llvm-svn: 140244
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This model uses the 'landingpad' instruction, which is pinned to the top of the
landing pad. (A landing pad is defined as the destination of the unwind branch
of an invoke instruction.) All of the information needed to generate the correct
exception handling metadata during code generation is encoded into the
landingpad instruction.
The new 'resume' instruction takes the place of the llvm.eh.resume intrinsic
call. It's lowered in much the same way as the intrinsic is.
llvm-svn: 140049
|