| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
extension. Addresses clang PR/3371.
llvm-svn: 62823
|
| |
|
|
|
|
|
|
|
|
|
| |
initializers, so that we are within the appropriate subobject after
we've processed a multi-designator designation. We're matching GCC and
EDG's behavior on all examples I've found thus far.
*Huge* thanks to Eli Friedman for pointing out my fundamental
misunderstanding of "current object" in the C99 spec.
llvm-svn: 62812
|
| |
|
|
|
|
| |
fsyntax-only with PTH by 3%.
llvm-svn: 62774
|
| |
|
|
| |
llvm-svn: 62766
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
designated initializers. This implementation should cover all of the
constraints in C99 6.7.8, including long, complex designations and
computing the size of incomplete array types initialized with a
designated initializer. Please see the new test-case and holler if you
find cases where this doesn't work.
There are still some wrinkles with GNU's anonymous structs and
anonymous unions (it isn't clear how these should work; we'll just
follow GCC's lead) and with designated initializers for the members of a
union. I'll tackle those very soon.
CodeGen is still nonexistent, and there's some leftover code in the
parser's representation of designators that I'll also need to clean up.
llvm-svn: 62737
|
| |
|
|
|
|
|
|
| |
around a Visual Studio compiler bug.
Thanks to Doug Gregor for the suggestion.
llvm-svn: 62723
|
| |
|
|
| |
llvm-svn: 62666
|
| |
|
|
|
|
| |
this removes 4266 calls to LookupDecl.
llvm-svn: 62662
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 62640
|
| |
|
|
|
|
|
| |
This allows more concise syntax when allocating an object using the ASTContext's allocator.
Convert a few allocations to this operator to for test purposes.
llvm-svn: 62623
|
| |
|
|
|
|
| |
caused by my previous commit.
llvm-svn: 62613
|
| |
|
|
|
|
|
|
| |
When using a BumpPtrAllocator, this reduces malloc overhead from 2.2->1.9% (for Cocoa.h).
At this point, malloc() has dropped the fourth most expensive routine (behind Preprocessor::HandleIdentifier()).
llvm-svn: 62612
|
| |
|
|
| |
llvm-svn: 62609
|
| |
|
|
|
|
| |
Add debug hook to DeclContext.
llvm-svn: 62605
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
function DeclaratorChunk in common cases. This uses a fixed array in
Declarator when it is small enough for the first function declarator chunk
in a declarator.
This eliminates all malloc/free traffic from DeclaratorChunk::getFunction
when running on Cocoa.h except for five functions: signal/bsd_signal/sigset,
which have multiple Function DeclChunk's, and
CFUUIDCreateWithBytes/CFUUIDGetConstantUUIDWithBytes, which take more than
16 arguments.
This patch was pair programmed with Steve.
llvm-svn: 62599
|
| |
|
|
|
|
| |
document both it and DeclContext::addDecl properly
llvm-svn: 62581
|
| |
|
|
|
|
| |
owned by the ASTContext's TranslationUnitDecl. There are definitely some leaking Decls now that I'll tackle tomorrow
llvm-svn: 62568
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that every declaration lives inside a DeclContext.
Moved several things that don't have names but were ScopedDecls (and,
therefore, NamedDecls) to inherit from Decl rather than NamedDecl,
including ObjCImplementationDecl and LinkageSpecDecl. Now, we don't
store empty DeclarationNames for these things, nor do we try to insert
them into DeclContext's lookup structure.
The serialization tests are temporarily disabled. We'll re-enable them
once we've sorted out the remaining ownership/serialiazation issues
between DeclContexts and TranslationUnion, DeclGroups, etc.
llvm-svn: 62562
|
| |
|
|
| |
llvm-svn: 62537
|
| |
|
|
|
|
| |
that rules for assignment.
llvm-svn: 62524
|
| |
|
|
|
|
|
|
|
|
| |
new DiagnoseIncompleteType. It provides additional information about
struct/class/union/enum types when possible, either by pointing to the
forward declaration of that type or by pointing to the definition (if
we're in the process of defining that type).
Fixes <rdar://problem/6500531>.
llvm-svn: 62521
|
| |
|
|
|
|
| |
Fix type of logical negation for C++.
llvm-svn: 62475
|
| |
|
|
|
|
| |
These actions are extremely widely used (identifier expressions and literals); still no performance regression.
llvm-svn: 62468
|
| |
|
|
| |
llvm-svn: 62465
|
| |
|
|
| |
llvm-svn: 62464
|
| |
|
|
| |
llvm-svn: 62463
|
| |
|
|
| |
llvm-svn: 62458
|
| |
|
|
| |
llvm-svn: 62455
|
| |
|
|
| |
llvm-svn: 62440
|
| |
|
|
| |
llvm-svn: 62437
|
| |
|
|
|
|
| |
instead of the number of outputs. No functionality change.
llvm-svn: 62433
|
| |
|
|
| |
llvm-svn: 62431
|
| |
|
|
|
|
| |
rdar://problem/6503878
llvm-svn: 62397
|
| |
|
|
| |
llvm-svn: 62391
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
even when we are still defining the TagDecl. This is required so that
qualified name lookup of a class name within its definition works (see
the new bits in test/SemaCXX/qualified-id-lookup.cpp).
As part of this, move the nested redefinition checking code into
ActOnTag. This gives us diagnostics earlier (when we try to perform
the nested redefinition, rather than when we try to complete the 2nd
definition) and removes some code duplication.
llvm-svn: 62386
|
| |
|
|
|
|
| |
Fix a type error; parser wanted to pass the third part of a for-statement as a statement; should be expression.
llvm-svn: 62380
|
| |
|
|
|
|
| |
type.
llvm-svn: 62355
|
| |
|
|
|
|
| |
Issue diagnostics instead if types do not match.
llvm-svn: 62349
|
| |
|
|
| |
llvm-svn: 62346
|
| |
|
|
|
|
| |
with reference type (it should be an lvalue with non-reference type).
llvm-svn: 62345
|
| |
|
|
|
|
|
| |
into its ctor. Also, make it handle validity checking of pascal
strings instead of making clients do it.
llvm-svn: 62332
|
| |
|
|
|
|
|
|
| |
analysis and AST-building for the cases where we have N != 1
arguments. For N == 1 arguments, we need to finish the C++
implementation of explicit type casts (C++ [expr.cast]).
llvm-svn: 62329
|
| |
|
|
|
|
| |
to do the promotion before checking the type - fixes PR3340.
llvm-svn: 62323
|
| |
|
|
|
|
|
| |
Slightly speed up sema of numbers like '1' by going directly to
TargetInfo instead of through ASTContext.
llvm-svn: 62314
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 62303
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 62300
|
| |
|
|
|
|
|
| |
Sema::ActOnFunctionDeclarator().
No functionality change.
llvm-svn: 62290
|
| |
|
|
| |
llvm-svn: 62287
|
| |
|
|
|
|
|
|
|
|
|
| |
enum E {
A = 1U,
B
};
Don't make an implicit cast expr of null for B.
llvm-svn: 62274
|
| |
|
|
|
|
| |
and uninitialized use options.
llvm-svn: 62270
|