| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not actually frequently used, because ImpCastExprToType only creates a node
if the types differ. So explicitly create an ICE in the lvalue-to-rvalue
conversion code in DefaultFunctionArrayLvalueConversion() as well as several
other new places, and consistently deal with the consequences throughout the
compiler.
In addition, introduce a new cast kind for loading an ObjCProperty l-value,
and make sure we emit those nodes whenever an ObjCProperty l-value appears
that's not on the LHS of an assignment operator.
This breaks a couple of rewriter tests, which I've x-failed until future
development occurs on the rewriter.
Ted Kremenek kindly contributed the analyzer workarounds in this patch.
llvm-svn: 120890
|
|
|
|
|
|
| |
the l-value.
llvm-svn: 120884
|
|
|
|
|
|
|
|
| |
ObjCPropertyRefExpr
into the latter.
llvm-svn: 120643
|
|
|
|
| |
llvm-svn: 120555
|
|
|
|
| |
llvm-svn: 120433
|
|
|
|
|
|
| |
about the reliability of this yet.
llvm-svn: 120422
|
|
|
|
| |
llvm-svn: 120084
|
|
|
|
| |
llvm-svn: 119678
|
|
|
|
|
|
|
|
|
| |
assignment to volatiles in C. This in effect reverts some of mjs's
work in and around r72572. Basically, the C++ standard is quite
clear, except that it lies about volatile behavior approximating
C's, whereas the C standard is almost actively misleading.
llvm-svn: 119344
|
|
|
|
| |
llvm-svn: 119332
|
|
|
|
| |
llvm-svn: 119331
|
|
|
|
| |
llvm-svn: 119138
|
|
|
|
|
|
|
|
|
|
| |
implicit conversions; the last batch was specific to promotions.
I think this is the full set we need. I do think dividing the cast
kinds into floating and integral is probably a good idea.
Annotate a *lot* more C casts with useful cast kinds.
llvm-svn: 119036
|
|
|
|
|
|
| |
between complex types.
llvm-svn: 118994
|
|
|
|
| |
llvm-svn: 118966
|
|
|
|
|
|
| |
getBaseClassOffset which returns the offset in CharUnits. Do the same thing for getVBaseClassOffset.
llvm-svn: 117881
|
|
|
|
| |
llvm-svn: 117106
|
|
|
|
|
|
| |
constant initializers.
llvm-svn: 116138
|
|
|
|
| |
llvm-svn: 116071
|
|
|
|
|
|
| |
This is tested by file-statics.exp in gdb testsuite.
llvm-svn: 116060
|
|
|
|
| |
llvm-svn: 115569
|
|
|
|
| |
llvm-svn: 115568
|
|
|
|
|
|
| |
aggregate's debug info was delayed untill now.
llvm-svn: 115564
|
|
|
|
|
|
| |
vla. Implements pr7827.
llvm-svn: 114737
|
|
|
|
|
|
| |
a vla type (fixes pr7827).
llvm-svn: 114495
|
|
|
|
| |
llvm-svn: 114371
|
|
|
|
|
|
| |
simply aborting when a signed operation overflows. This mirrors the (GCC-incompatible) behaviour from clang 1.0 and 1.1 when -ftrapv was specified, but allows the handler to be defined for each compilation unit.
llvm-svn: 114192
|
|
|
|
|
|
|
|
| |
extension when missing LHS. This patch covers scalar
conditionals only. Others are wip.
(pr7726, radar 8353567).
llvm-svn: 114182
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
slot. The easiest way to do that was to bundle up the information
we care about for aggregate slots into a new structure which demands
that its creators at least consider the question.
I could probably be convinced that the ObjC 'needs GC' bit should
be rolled into this structure.
Implement generalized copy elision. The main obstacle here is that
IR-generation must be much more careful about making sure that exactly
llvm-svn: 113962
|
|
|
|
|
|
| |
need Sema access to be correct, fixes coming up.
llvm-svn: 113782
|
|
|
|
|
|
| |
Patch by John Regehr!
llvm-svn: 113705
|
|
|
|
| |
llvm-svn: 113629
|
|
|
|
|
|
|
| |
generate the necessary code. This patch fixes it.
// rdar://8389655
llvm-svn: 113079
|
|
|
|
|
|
|
| |
value is used. This matches with non-block variable
use of bool type. (Fixes radar 8390062).
llvm-svn: 113027
|
|
|
|
|
|
|
| |
twice. This showed up as an assert on the odd test case because we generated the
decl map entry twice.
llvm-svn: 112943
|
|
|
|
|
|
| |
under the ARM ABI.
llvm-svn: 112588
|
|
|
|
|
|
| |
some issues being sorted out.
llvm-svn: 112493
|
|
|
|
|
|
|
| |
- Zero-initialize UDLData so that crashes stop
- Stop complaining that we can't emit them (we most certainly can)
llvm-svn: 112467
|
|
|
|
|
|
| |
to the new constants.
llvm-svn: 112047
|
|
|
|
| |
llvm-svn: 112044
|
|
|
|
|
|
| |
as a truncation not a comparison to null.
llvm-svn: 112021
|
|
|
|
|
|
|
| |
the ternary operator without a left-hand side in C++ (PR7726), from
Jean-Daniel Dupas!
llvm-svn: 111809
|
|
|
|
|
|
|
|
|
|
|
| |
class; they should just be completely opaque throughout IR gen now,
although I haven't really audited that.
Fix a bug apparently inherited from gcc-4.2 where we failed to null-check
member data pointers when performing derived-to-base or base-to-derived
conversions on them.
llvm-svn: 111789
|
|
|
|
| |
llvm-svn: 111782
|
|
|
|
|
|
|
|
|
|
| |
pointers. I find the resulting code to be substantially cleaner, and it
makes it very easy to use the same APIs for data member pointers (which I have
conscientiously avoided here), and it avoids a plethora of potential
inefficiencies due to excessive memory copying, but we'll have to see if it
actually works.
llvm-svn: 111776
|
|
|
|
|
|
|
|
|
|
|
|
| |
the ABI code. Implement correct semantics for these on ARM.
I believe this completes the implementation of member function pointers
on ARM.
I think I'm going to switch member function pointers over to be
non-aggregates while I have all this in mind.
llvm-svn: 111774
|
|
|
|
| |
llvm-svn: 111716
|
|
|
|
| |
llvm-svn: 110996
|
|
|
|
|
|
| |
constant integer globals, based on Chris's feedback.
llvm-svn: 110694
|
|
|
|
|
|
| |
constant variable.
llvm-svn: 110660
|