| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
c++ objects with non-trivial assignment/copy functions.
Also, one additional sema check. // rdar://6137845
llvm-svn: 147817
|
|
|
|
| |
llvm-svn: 147791
|
|
|
|
|
|
| |
padding insertion will not work if the coerced type is not a structure.
llvm-svn: 147786
|
|
|
|
|
|
| |
c++ object properties. wip.
llvm-svn: 147750
|
|
|
|
|
|
| |
with non-trivial copies. // rdar://6137845
llvm-svn: 147735
|
|
|
|
| |
llvm-svn: 147730
|
|
|
|
|
|
|
|
| |
is inserted before the real argument. Padding is needed to ensure the backend
reads from or writes to the correct argument slots when the original alignment
of a byval structure is unavailable due to flattening.
llvm-svn: 147699
|
|
|
|
|
|
|
|
| |
currently turned off. // rdar://6137845
Also, fixes a test case which should be nonatomic under
new API.
llvm-svn: 147691
|
|
|
|
| |
llvm-svn: 147681
|
|
|
|
| |
llvm-svn: 147677
|
|
|
|
|
|
|
| |
properties of c++ object types with non-trivial
assignment copy. Not used yet. // rdar://6137845
llvm-svn: 147666
|
|
|
|
| |
llvm-svn: 147664
|
|
|
|
|
|
|
|
| |
builtins.
This fixes PR11711.
llvm-svn: 147655
|
|
|
|
|
|
|
|
| |
for copying atomic properties of c++ objects
with non-trivial copy assignment in setters/getters.
Not yet used. // rdar://6137845
llvm-svn: 147636
|
|
|
|
|
|
| |
address-of-label differences).
llvm-svn: 147631
|
|
|
|
|
|
|
|
| |
c++ object reference type with trivial copy constructor.
This causes an assert crash and bad code gen. when assert
is off. // rdar://6137845
llvm-svn: 147573
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
information even in subscripting operations.
llvm-svn: 147557
|
|
|
|
|
|
| |
thing.
llvm-svn: 147530
|
|
|
|
|
|
| |
is either N32 or N64.
llvm-svn: 147520
|
|
|
|
| |
llvm-svn: 147511
|
|
|
|
|
|
| |
the class, so that they are usable in +load methods if the string class has been compiled with clang - if it's been compiled with GCC, the ABI makes this impossible. (GNU runtimes)
llvm-svn: 147493
|
|
|
|
|
|
| |
ObjCProtocolDecl modules forward declarations properly.
llvm-svn: 147415
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for Objective-C protocols, including:
- Using the first declaration as the canonical declaration
- Using the definition as the primary DeclContext
- Making sure that all declarations have a pointer to the definition
data, and that we know which declaration is the definition
- Serialization support for redeclaration chains and for adding
definitions to already-serialized declarations.
However, note that we're not taking advantage of much of this code
yet, because we're still re-using ObjCProtocolDecls.
llvm-svn: 147410
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also temporarily remove the assumption from IR gen that we can emit IR for every
constant we can fold, since it isn't currently true in C++11, to fix PR11676.
Original comment from r147271:
constexpr: perform zero-initialization prior to / instead of performing a
constructor call when appropriate. Thanks to Eli for spotting this.
llvm-svn: 147384
|
|
|
|
|
|
| |
clients. No functionality change.
llvm-svn: 147318
|
|
|
|
|
|
|
| |
covers both declarations (@class) and definitions (@interface) of an
Objective-C class.
llvm-svn: 147299
|
|
|
|
| |
llvm-svn: 147290
|
|
|
|
| |
llvm-svn: 147263
|
|
|
|
|
|
| |
compound literals.
llvm-svn: 147111
|
|
|
|
|
|
| |
http://llvm.org/docs/CodingStandards.html#ll_virtual_anch
llvm-svn: 146959
|
|
|
|
|
|
| |
<rdar://problem/10492556>
llvm-svn: 146926
|
|
|
|
|
|
| |
MakeNaturalAlignAddrLValue.
llvm-svn: 146920
|
|
|
|
|
|
| |
that have alignment less than the natural alignment of the type when it comes from a typedef.
llvm-svn: 146908
|
|
|
|
|
|
|
| |
the inner decl being a builtin. This is needed to support the glibc headers
in fedora 16 (2.14).
llvm-svn: 146867
|
|
|
|
| |
llvm-svn: 146857
|
|
|
|
|
|
|
|
|
| |
declaration for the type then go ahead and use that, it's still smaller
than creating an all new derived type.
Part of rdar://10335756 and others.
llvm-svn: 146779
|
|
|
|
|
|
|
|
| |
classes.
Part of rdar://10520586 and a couple others.
llvm-svn: 146778
|
|
|
|
|
|
| |
definition.
llvm-svn: 146705
|
|
|
|
|
|
|
|
|
|
| |
declarations and definitions) as ObjCInterfaceDecls within the same
redeclaration chain. This new representation matches what we do for
C/C++ variables/functions/classes/templates/etc., and makes it
possible to answer the query "where are all of the declarations of
this class?"
llvm-svn: 146679
|
|
|
|
|
|
|
|
| |
to declaresSameEntity(), as a baby step toward tracking forward
declarations of Objective-C classes precisely. Part of
<rdar://problem/10583531>.
llvm-svn: 146618
|
|
|
|
|
|
| |
free function.
llvm-svn: 146530
|
|
|
|
|
|
| |
class has a base whose alignment will break the class layout. <rdar://problem/10551376>.
llvm-svn: 146443
|
|
|
|
| |
llvm-svn: 146441
|
|
|
|
| |
llvm-svn: 146413
|
|
|
|
|
|
|
|
|
| |
setting the is_zero_undef flag appropriately to true as that matches the
semantics of these GCC builtins.
This is the Clang side of r146357 in LLVM.
llvm-svn: 146358
|
|
|
|
|
|
| |
Silences valgrind warnings about uninitalized alignment values.
llvm-svn: 146342
|
|
|
|
| |
llvm-svn: 146291
|
|
|
|
| |
llvm-svn: 146202
|
|
|
|
| |
llvm-svn: 146189
|