| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
getFloatingTypeOrder) instead of a type. Fix a fixme.
llvm-svn: 49297
|
| |
|
|
| |
llvm-svn: 49296
|
| |
|
|
| |
llvm-svn: 49295
|
| |
|
|
|
|
|
|
| |
Context.getCanonicalType(CT) for PR2189.
While I'm at it, clean up a bit of maxIntegerType.
llvm-svn: 49292
|
| |
|
|
| |
llvm-svn: 49273
|
| |
|
|
|
|
|
|
|
|
| |
-Renamed ContextDecl -> DeclContext
-Removed DeclContext pointer from FieldDecl
-EnumDecl inherits from DeclContext, instead of TagDecl
Patch by Argiris Kirtzidis!
llvm-svn: 49261
|
| |
|
|
|
|
| |
subsuming) my patch for PR1999.
llvm-svn: 49251
|
| |
|
|
|
|
| |
Without this, the diagnostic is very confusing. The diag is now consistent with gcc as well.
llvm-svn: 49214
|
| |
|
|
|
|
|
|
|
|
|
| |
-Added ContextDecl (no TranslationUnitDecl)
-ScopedDecl class has a ContextDecl member
-FieldDecl class has a ContextDecl member, so that a Field or a ObjCIvar can be traced back to their RecordDecl/ObjCInterfaceDecl easily
-FunctionDecl, ObjCMethodDecl, TagDecl, ObjCInterfaceDecl inherit from ContextDecl. With TagDecl as ContextDecl, enum constants have a EnumDecl as their context.
-Moved Decl class to a "DeclBase.h" along with ContextDecl class
-CurContext is handled by Sema
llvm-svn: 49208
|
| |
|
|
|
|
|
| |
This prevents things like
a += b[0]; where a is a float4 and b is a float4 * (address_space 1)
llvm-svn: 49199
|
| |
|
|
|
|
| |
the LHS for null twice.
llvm-svn: 49138
|
| |
|
|
|
|
|
|
| |
ObjCInterfaceDecl is arguably a TypeDecl, it isn't a ScopedDecl. Since TypeDecl's are scoped, it makes sense to simply treat them as NamedDecl's. I could have fiddled a bit more with the hierarchy (in terms of creating a non-scoped TypeDecl), however this probably isn't worth the effort.
I also finished unifying access to scope decl change by converting Sema::getObjCInterfaceDecl() to use Sema::LookupDecl(). This is much cleaner now:-)
llvm-svn: 49107
|
| |
|
|
| |
llvm-svn: 49101
|
| |
|
|
|
|
|
| |
allowing them to be treated the same in some contexts. A suggestion for a
better name is welcome :)
llvm-svn: 49100
|
| |
|
|
| |
llvm-svn: 49098
|
| |
|
|
|
|
|
|
|
|
|
| |
(1) Remove IdLoc (it's never used).
(2) Add a bool to enable/disable lazy builtin creaation (defaults to true).
This enables us to use LookupDecl() in Sema::isTypeName(), which is also part of this commit.
To make this work, I changed isTypeName() to be a non-const member function. I'm not happy with this, however I fiddled with making LookupDecl() and friends const and it got ugly pretty quickly. We can certainly add it back if/when someone has time to fiddle with it. For now, I thought this simplification was more important than retaining the const-ness.
llvm-svn: 49087
|
| |
|
|
|
|
|
|
| |
object type". Add a predicate that checks exactly this, as it is equivalent
to checking ot see if the type is *not* a function type, which is faster
to check.
llvm-svn: 49082
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
object or incomplete types shall not be restrict-qualified."
2) Warn about qualifiers on function types: C99 6.7.3p8: "If the
specification of a function type includes any type qualifiers, the
behavior is undefined."
3) Implement restrict on C++ references.
4) fix some locations for various C++ reference diagnostics.
llvm-svn: 49081
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
First, we got several CVR propagation cases wrong, which Eli pointed
out in PR2039.
Second, we didn't propagate address space qualifiers correctly, leading
to incorrect lowering of code in CodeGen/address-space.c.
Third, we didn't uniformly propagate the specifier in the array to the
pointer ("int[restrict 4]" -> "int *restrict").
This adds an ASTContext::getArrayDecayedType member that handles the
non-trivial logic for this seemingly simple operation.
llvm-svn: 49078
|
| |
|
|
|
|
| |
functionality change.
llvm-svn: 49072
|
| |
|
|
| |
llvm-svn: 49068
|
| |
|
|
| |
llvm-svn: 49066
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
(to inherit from NamedDecl, instead of ScopedDecl).
- Added a DenseMap to associate an IdentifierInfo with the ObjCCompatibleAliasDecl.
- Renamed LookupScopedDecl->LookupDecl and changed it's return type to Decl. Also added lookup for ObjCCompatibleAliasDecl's.
- Removed Sema::LookupInterfaceDecl(). Converted clients to used LookupDecl().
- Some minor indentation changes.
Will deal with ObjCInterfaceDecl and getObjCInterfaceDecl() in a separate commit...
llvm-svn: 49058
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix objc ivar lookup. Ivar lookup should occur between lookup
of method-local values and lookup of globals. Emulate this with
some logic in the handling of Sema::ActOnIdentifierExpr.
Two todo's left:
1) sema shouldn't turn a bare reference to an ivar into "self->ivar"
in the AST. This is a hack.
2) The new ScopedDecl::isDefinedOutsideFunctionOrMethod method does
not correctly handle typedefs and enum constants yet.
llvm-svn: 48972
|
| |
|
|
| |
llvm-svn: 48924
|
| |
|
|
|
|
| |
SystemHeaderDir's.
llvm-svn: 48841
|
| |
|
|
|
|
| |
# this is my first commit here, so please be gentle :)
llvm-svn: 48807
|
| |
|
|
|
|
| |
the future, RecordTypes.
llvm-svn: 48784
|
| |
|
|
| |
llvm-svn: 48571
|
| |
|
|
| |
llvm-svn: 48568
|
| |
|
|
| |
llvm-svn: 48461
|
| |
|
|
|
|
| |
like the rest of the classes.
llvm-svn: 48434
|
| |
|
|
|
|
| |
the allocation in the class, not in sema.
llvm-svn: 48433
|
| |
|
|
| |
llvm-svn: 48432
|
| |
|
|
| |
llvm-svn: 48428
|
| |
|
|
|
|
|
|
| |
specified. Previously, the ctor would allocate memory for the list and then
it would get filled in later. Move the allocation+filling in to be more
consistent with other stuff, e.g. the addMethods method.
llvm-svn: 48427
|
| |
|
|
| |
llvm-svn: 48426
|
| |
|
|
| |
llvm-svn: 48423
|
| |
|
|
|
|
| |
a protocol could smash more references in than are allocated.
llvm-svn: 48411
|
| |
|
|
| |
llvm-svn: 48410
|
| |
|
|
| |
llvm-svn: 48409
|
| |
|
|
| |
llvm-svn: 48408
|
| |
|
|
|
|
| |
can't have negative arguments.
llvm-svn: 48407
|
| |
|
|
| |
llvm-svn: 48406
|
| |
|
|
| |
llvm-svn: 48405
|
| |
|
|
|
|
| |
allocation through ASTContext.
llvm-svn: 48403
|
|
|
lib dir and move all the libraries into it. This follows the main
llvm tree, and allows the libraries to be built in parallel. The
top level now enforces that all the libs are built before Driver,
but we don't care what order the libs are built in. This speeds
up parallel builds, particularly incremental ones.
llvm-svn: 48402
|