| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
receiver.
llvm-svn: 121517
|
| |
|
|
| |
llvm-svn: 121516
|
| |
|
|
| |
llvm-svn: 121488
|
| |
|
|
|
|
|
|
|
|
| |
space better. Remove this reference. To make that work, change some APIs
(most importantly, getDesugaredType()) to take an ASTContext& if they
need to return a QualType. Simultaneously, diminish the need to return a
QualType by introducing some useful APIs on SplitQualType, which is
just a std::pair<const Type *, Qualifiers>.
llvm-svn: 121478
|
| |
|
|
|
|
|
|
| |
increasing the required type alignment from 8 to 16. This provides a
2.5% speedup for -fsyntax-only on a token-cached Cocoa.h, while only
increasing memory consumption in the ASTContext by 0.8%.
llvm-svn: 121474
|
| |
|
|
|
|
|
|
|
|
|
| |
visibility. Fixes PR8713.
I've disabled a test which was testing that you can #pragma pop visibility
to get out of a namespace's visibility attribute. We should probably just
diagnose that as an error unless it's instrumental to someone's system
headers.
llvm-svn: 121459
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
"inline", we weren't giving the definition weak linkage because the
"inline" bit wasn't propagated. This was a longstanding FIXME that,
somehow, hadn't triggered a bug in the wild. Fix this problem by
tracking whether any declaration was marked "inline", and clean up the
semantics of GNU's "extern inline" semantics calculation based on this
change.
Fixes <rdar://problem/8740363>.
llvm-svn: 121373
|
| |
|
|
| |
llvm-svn: 121352
|
| |
|
|
|
|
|
|
|
|
| |
aligment of the sub-struct,
take into account if the sub-struct is packed and its maximum field alignment.
Fixes rdar://8745206
llvm-svn: 121335
|
| |
|
|
|
|
| |
BinaryTypeTraitExpr.
llvm-svn: 121298
|
| |
|
|
|
|
| |
implementation.
llvm-svn: 121263
|
| |
|
|
|
|
| |
(@synthesize and @dynamic).
llvm-svn: 121159
|
| |
|
|
|
|
| |
unsigned integer" warnings.
llvm-svn: 121143
|
| |
|
|
| |
llvm-svn: 121139
|
| |
|
|
|
|
|
|
| |
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.
llvm-svn: 121121
|
| |
|
|
| |
llvm-svn: 121097
|
| |
|
|
| |
llvm-svn: 121084
|
| |
|
|
|
|
|
| |
I'm not opposed to the idea in concept, but there's no point in preserving
abortive experiments.
llvm-svn: 121083
|
| |
|
|
|
|
| |
New AST node introduced: BinaryTypeTraitExpr; to be reused for more intrinsics.
llvm-svn: 121074
|
| |
|
|
|
|
| |
introduced in r121023.
llvm-svn: 121025
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
My previous attempt at solving the compile-time problem with many
redeclarations of the same entity cached both linkage and visibility,
while this patch only tackles linkage. There are several reasons for
this difference:
- Linkage is a language concept, and is evaluated many times during
semantic analysis and codegen, while visibility is only a
code-generation concept that is evaluated only once per (unique)
declaration. Hence, we *must* optimize linkage calculations but
don't need to optimize visibility computation.
- Once we know the linkage of a declaration, subsequent
redeclarations can't change that linkage. Hence, cache
invalidation is far simpler than for visibility, where a later
redeclaration can completely change the visibility.
- We have 3 spare bits in Decl to store the linkage cache, so the
cache doesn't increase the size of declarations. With the
visibility+linkage cache, NamedDecl got larger.
llvm-svn: 121023
|
| |
|
|
|
|
|
|
|
| |
and visibility of declarations, because it was extremely messy and it
increased the size of NamedDecl.
An improved implementation is forthcoming.
llvm-svn: 121012
|
| |
|
|
|
|
| |
routines.
llvm-svn: 121007
|
| |
|
|
|
|
| |
reason this is limited to C++, and it's certainly not limited to temporaries.
llvm-svn: 120996
|
| |
|
|
|
|
|
|
|
| |
build one when either of the operands calls itself type-dependent;
previously we were building when one of the operand types was dependent,
which is not always the same thing and which can lead to unfortunate
inconsistencies later. Fixes PR8739.
llvm-svn: 120990
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
used in a constructor initializer list:
struct X {
X() : au_i1(123) {}
union {
int au_i1;
float au_f1;
};
};
clang will now deal with au_i1 explicitly as an IndirectFieldDecl.
llvm-svn: 120900
|
| |
|
|
|
|
| |
Abramo noticed this.
llvm-svn: 120898
|
| |
|
|
| |
llvm-svn: 120897
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
no property accessor class method to be found, instead of
crashing in IRGen. // rdar://8703553
llvm-svn: 120855
|
| |
|
|
| |
llvm-svn: 120828
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
declarations.
The motivation for this patch is that linkage/visibility computations
are linear in the number of redeclarations of an entity, and we've run
into a case where a single translation unit has > 6500 redeclarations
of the same (unused!) external variable. Since each redeclaration
involves a linkage check, the resulting quadratic behavior makes Clang
slow to a crawl. With this change, a simple test with 512
redeclarations of a variable syntax-checks ~20x faster than
before.
That said, I hate this change, and will probably end up reverting it
in a few hours. Reasons to hate it:
- It makes NamedDecl larger, since we don't have enough free bits in
Decl to squeeze in the extra information about caching.
- There are way too many places where we need to invalidate this
cache, because the visibility of a declaration can change due to
redeclarations (!). Despite self-hosting and passing the testsuite,
I have no confidence that I've found all of places where this cache
needs to be invalidated.
llvm-svn: 120808
|
| |
|
|
| |
llvm-svn: 120736
|
| |
|
|
| |
llvm-svn: 120729
|
| |
|
|
|
|
| |
code I wrote, returning "true" on error is still unnatural.
llvm-svn: 120727
|
| |
|
|
|
|
|
|
| |
objects imported into blocks. //rdar://8594790.
Will have a test case coming (as well as one
sent to llvm test suite).
llvm-svn: 120713
|
| |
|
|
| |
llvm-svn: 120701
|
| |
|
|
| |
llvm-svn: 120700
|
| |
|
|
|
|
|
|
| |
ObjCPropertyRefExpr
into the latter.
llvm-svn: 120643
|
| |
|
|
|
|
| |
to be available in debug vs. release builds.
llvm-svn: 120629
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
definition of an Objective-C class. Unlike with C/C++ classes, we
don't have a well-defined point in Sema where Objective-C classes are
checked for completeness, nor do we need to involve Sema when
completing a class. Therefore, we take the appropriate of having the
external AST source mark a particular Objective-C class as having an
external declaration; when using one of the accessors of an
Objective-C class that has an external declaration, we request that
the external AST source fill in the Objective-C class definition.
llvm-svn: 120627
|
| |
|
|
|
|
|
| |
to be used in copy helper synthesis of __block
variables. wip.
llvm-svn: 120617
|
| |
|
|
|
|
| |
underlying type, from Daniel Wallin
llvm-svn: 120576
|
| |
|
|
| |
llvm-svn: 120562
|
| |
|
|
| |
llvm-svn: 120555
|
| |
|
|
| |
llvm-svn: 120523
|
| |
|
|
|
|
| |
declarations.
llvm-svn: 120448
|
| |
|
|
| |
llvm-svn: 120446
|
| |
|
|
| |
llvm-svn: 120433
|
| |
|
|
|
|
| |
about the reliability of this yet.
llvm-svn: 120422
|