| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
the encoding used by GCC.
llvm-svn: 105451
|
|
|
|
| |
llvm-svn: 104847
|
|
|
|
|
|
|
|
| |
Flag synthesized struct decl. as non-empty so
CXX side of ir gen does not skip its Null initialization.
Fixes radar 8027844 for objc++'s collection statement.
llvm-svn: 104837
|
|
|
|
|
|
| |
ASTRecordLayoutBuilder into RecordLayoutBuilder.cpp. This matches the way we interact with other builder classes (CGRecordLayoutBuilder, VTableBuilder and VTTBuilder) and it also allows for making ASTRecordLayoutBuilder a private class without a header file.
llvm-svn: 104671
|
|
|
|
|
|
| |
promotion. Fixes <rdar://problem/8020920>.
llvm-svn: 104545
|
|
|
|
|
|
|
|
| |
pointers in the ASTContext, so that the folding sets stored inside
them will be deallocated when the ASTContext is destroyed (under
-disable-free). <rdar://problem/7998824>.
llvm-svn: 104465
|
|
|
|
|
|
| |
canonical type where the element type is canonical. Fixes PR7206.
llvm-svn: 104461
|
|
|
|
|
|
| |
(the codegen works here, too, but that's annoying to test without execution)
llvm-svn: 104202
|
|
|
|
|
|
| |
object variables and functions returning such objects.
llvm-svn: 104168
|
|
|
|
| |
llvm-svn: 104001
|
|
|
|
|
|
|
| |
typedefs. As a drive-by, teach hit how to build VLA types, since those
will eventually be supported in C++.
llvm-svn: 103958
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ObjCObjectType, which is basically just a pair of
one of {primitive-id, primitive-Class, user-defined @class}
with
a list of protocols.
An ObjCObjectPointerType is therefore just a pointer which always points to
one of these types (possibly sugared). ObjCInterfaceType is now just a kind
of ObjCObjectType which happens to not carry any protocols.
Alter a rather large number of use sites to use ObjCObjectType instead of
ObjCInterfaceType. Store an ObjCInterfaceType as a pointer on the decl rather
than hashing them in a FoldingSet. Remove some number of methods that are no
longer used, at least after this patch.
By simplifying ObjCObjectPointerType, we are now able to easily remove and apply
pointers to Objective-C types, which is crucial for a certain kind of ObjC++
metaprogramming common in WebKit.
llvm-svn: 103870
|
|
|
|
| |
llvm-svn: 103517
|
|
|
|
|
|
|
|
| |
only things that
aren't allocated this way are the internal FoldingSets.
llvm-svn: 103429
|
|
|
|
|
|
|
|
|
|
| |
ASTContext's allocator.
While DeclarationNameTable doesn't leak, it uses 'malloc' too often. Start with having
'CXXLiteralOperatorNames' allocated using ASTContext's allocator and add a 'DoDestroy()' method
to DeclarationNameTable that is called by ~ASTContext.
llvm-svn: 103426
|
|
|
|
|
|
| |
template arguments.
llvm-svn: 103221
|
|
|
|
|
|
|
|
| |
access. Fixes an assertion.
Fixes rdar://problem/7927811. Too lazy to reduce a test case.
llvm-svn: 102776
|
|
|
|
|
|
| |
compatibility of", it is breaking the builds of quite a few projects (emacs, dovecot, gnutar, bison).
llvm-svn: 102501
|
|
|
|
|
|
|
|
|
| |
function types.
This could potentially have unexpected side-effects, so look here if there are
new regressions.
llvm-svn: 102464
|
|
|
|
| |
llvm-svn: 102447
|
|
|
|
|
|
|
| |
from AST, consider ivar array of objects
(per Doug's comment).
llvm-svn: 102446
|
|
|
|
| |
llvm-svn: 102445
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of a class template or class template partial specialization. That is to
say, in
template <class T> class A { ... };
or
template <class T> class B<const T*> { ... };
make 'A<T>' and 'B<const T*>' sugar for the corresponding InjectedClassNameType
when written inside the appropriate context. This allows us to track the
current instantiation appropriately even inside AST routines. It also allows
us to compute a DeclContext for a type much more efficiently, at some extra
cost every time we write a template specialization (which can be optimized,
but I've left it simple in this patch).
llvm-svn: 102407
|
|
|
|
|
|
| |
constructors or destructors, not used yet.
llvm-svn: 102403
|
|
|
|
| |
llvm-svn: 102208
|
|
|
|
|
|
| |
NeXt's -fno-constant-cfstrings - wip.
llvm-svn: 102189
|
|
|
|
|
|
|
| |
the alignment is a power of 2, even in the esoteric case of a
vector element which does not have a power-of-2 sizeof value.
llvm-svn: 102036
|
|
|
|
|
|
| |
-fdump-record-layouts.
llvm-svn: 101815
|
|
|
|
| |
llvm-svn: 101786
|
|
|
|
|
|
| |
blocks. Fixes PR6468.
llvm-svn: 101196
|
|
|
|
|
|
| |
of c-style arguments. Completes radar 7445205.
llvm-svn: 100813
|
|
|
|
|
|
| |
parameters list for encoding.
llvm-svn: 100788
|
|
|
|
|
|
| |
block pointer type comparison.
llvm-svn: 100533
|
|
|
|
|
|
| |
take'id' or return 'id' in their type. Fixes radar 7814131.
llvm-svn: 100129
|
|
|
|
|
|
|
| |
this was parsed as a typename-specifier, elaborated-type-specifier
(including the kind), or just a dependent qualified type name.
llvm-svn: 100039
|
|
|
|
|
|
| |
refactoring work in this area.
llvm-svn: 100019
|
|
|
|
|
|
| |
Fixes PR3782.
llvm-svn: 99940
|
|
|
|
|
|
|
|
| |
This introduces FunctionType::ExtInfo to hold the calling convention and the
noreturn attribute. The next patch will extend it to include the regparm
attribute and fix the bug.
llvm-svn: 99920
|
|
|
|
|
|
|
| |
This patch moves some methods from QualType to Type and changes the users to
use -> instead of .
llvm-svn: 99805
|
|
|
|
|
|
|
|
|
| |
templates. So delay access-control diagnostics when (for example) the target
of a friend declaration is a specific specialization of a template.
I was surprised to find that this was required for an access-controlled selfhost.
llvm-svn: 99383
|
|
|
|
|
|
|
|
| |
implementation or synthesized into an implementation. Also,
fixes a code gen. bug when ivars are itroduced in interleaved
implementations. (related to radar 7547942).
llvm-svn: 99193
|
|
|
|
|
|
|
|
| |
ranges as part of the ASTContext. This code is not and was never used,
but contributes ~250k to the size of the Cocoa.h precompiled
header.
llvm-svn: 99007
|
|
|
|
|
|
|
| |
returning objc objects. There will be a corresponding objective-c++
patch soon.
llvm-svn: 98696
|
|
|
|
|
|
| |
const char*.
llvm-svn: 98630
|
|
|
|
|
|
| |
and start simplifying the interfaces in SourceManager that can fail.
llvm-svn: 98594
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SourceManager's getBuffer() (and similar) operations. This abstract
can be used to force callers to cope with errors in getBuffer(), such
as missing files and changed files. Fix a bunch of callers to use the
new interface.
Add some very basic checks for file consistency (file size,
modification time) into ContentCache::getBuffer(), although these
checks don't help much until we've updated the main callers (e.g.,
SourceManager::getSpelling()).
llvm-svn: 98585
|
|
|
|
|
|
|
|
|
| |
Fixes an assertion arising C overload analysis, but really I can't imagine
that this wouldn't cause a thousand other uncaught failures.
Fixes PR6600.
llvm-svn: 98400
|
|
|
|
|
|
| |
references. Based on a patch by Arnaud de Grandmaison!
llvm-svn: 98327
|
|
|
|
|
|
|
|
|
|
|
|
| |
the @implementation (instead of the @interface) and actually add
the ivar to the DeclContext (which we weren't doing before).
This allows us to simplify ASTContext::CollectNonClassIvars() by
removing ASTContext::CollectProtocolSynthesizedIvars(). Now all
ivars can be found by either inspecting the ObjCInterfaceDecl and
its companion ObjCImplementationDecl.
llvm-svn: 98280
|
|
|
|
| |
llvm-svn: 98138
|