| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 62261
|
| |
|
|
| |
llvm-svn: 62255
|
| |
|
|
| |
llvm-svn: 62250
|
| |
|
|
| |
llvm-svn: 62247
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change refactors and cleans up our handling of name lookup with
LookupDecl. There are several aspects to this refactoring:
- The criteria for name lookup is now encapsulated into the class
LookupCriteria, which replaces the hideous set of boolean values
that LookupDecl currently has.
- The results of name lookup are returned in a new class
LookupResult, which can lazily build OverloadedFunctionDecls for
overloaded function sets (and, eventually, eliminate the need to
allocate member for OverloadedFunctionDecls) and contains a
placeholder for handling ambiguous name lookup (for C++).
- The primary entry points for name lookup are now LookupName (for
unqualified name lookup) and LookupQualifiedName (for qualified
name lookup). There is also a convenience function
LookupParsedName that handles qualified/unqualified name lookup
when given a scope specifier. Together, these routines are meant
to gradually replace the kludgy LookupDecl, but this won't happen
until after we have base class lookup (which forces us to cope
with ambiguities).
- Documented the heck out of name lookup. Experimenting a little
with using Doxygen's member groups to make some sense of the Sema
class. Feedback welcome!
- Fixes some lingering issues with name lookup for
nested-name-specifiers, which now goes through
LookupName/LookupQualifiedName.
llvm-svn: 62245
|
| |
|
|
|
|
|
|
|
|
| |
Small cleanup in the handling of user-defined conversions.
Also, implement an optimization when constructing a call. We avoid
recomputing implicit conversion sequences and instead use those
conversion sequences that we computed as part of overload resolution.
llvm-svn: 62231
|
| |
|
|
|
|
| |
to allocate the array of ParmVarDecl*'s.
llvm-svn: 62203
|
| |
|
|
|
|
| |
objects as an objective-c object.
llvm-svn: 62197
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Use canonical FileID when using getSpelling() caching. This
addresses some cache misses we were seeing with -fsyntax-only on
Cocoa.h
- Added Preprocessor::getPhysicalCharacterAt() utility method for
clients to grab the first character at a specified sourcelocation.
This uses the PTH spelling cache.
- Modified Sema::ActOnNumericConstant() to use
Preprocessor::getPhysicalCharacterAt() instead of
SourceManager::getCharacterData() (to get PTH hits).
These changes cause -fsyntax-only to not page in any sources from
Cocoa.h. We see a speedup of 27%.
llvm-svn: 62193
|
| |
|
|
| |
llvm-svn: 62192
|
| |
|
|
| |
llvm-svn: 62170
|
| |
|
|
|
|
| |
function/method/block.
llvm-svn: 62148
|
| |
|
|
| |
llvm-svn: 62147
|
| |
|
|
|
|
| |
assignment operator candidate (C++ [over.match.oper]p4).
llvm-svn: 62128
|
| |
|
|
|
|
| |
type. It leads to very weird errors.
llvm-svn: 62124
|