| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 49270
|
| |
|
|
|
|
| |
subsuming) my patch for PR1999.
llvm-svn: 49251
|
| |
|
|
|
|
|
| |
missing from function definitions only. If we see a function
definiton with missing declspecs, just fudge in an int.
llvm-svn: 49250
|
| |
|
|
|
|
| |
Without this, the diagnostic is very confusing. The diag is now consistent with gcc as well.
llvm-svn: 49214
|
| |
|
|
| |
llvm-svn: 49212
|
| |
|
|
|
|
|
|
| |
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: 49097
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 49068
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
(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
|
| |
|
|
|
|
| |
# this is my first commit here, so please be gentle :)
llvm-svn: 48807
|
| |
|
|
|
|
| |
the future, RecordTypes.
llvm-svn: 48784
|
| |
|
|
|
|
|
| |
non-default address space, and fix comment.
Add a test for this.
llvm-svn: 48366
|
| |
|
|
|
|
|
|
| |
An address space name cannot be used to qualify an object that has automatic
storage duration. Still not catching ASQual'd allocas of array type, just
scalars at the moment.
llvm-svn: 48350
|
| |
|
|
| |
llvm-svn: 48018
|
| |
|
|
|
|
|
| |
Added more comments for code processing attribute "format".
Added more checks for corner cases, test cases, and warnings.
llvm-svn: 48011
|
| |
|
|
| |
llvm-svn: 47856
|
| |
|
|
|
|
| |
but I see 3. Strangeness. Correcting lines 16 and 24.
llvm-svn: 47840
|
| |
|
|
| |
llvm-svn: 47837
|
| |
|
|
| |
llvm-svn: 47775
|
| |
|
|
| |
llvm-svn: 47768
|
| |
|
|
| |
llvm-svn: 47757
|
| |
|
|
| |
llvm-svn: 47455
|
| |
|
|
| |
llvm-svn: 47423
|
| |
|
|
|
|
| |
restrict isn't.
llvm-svn: 47316
|
| |
|
|
| |
llvm-svn: 47269
|
| |
|
|
|
|
|
|
|
| |
int foobar(int);
int foobar() {}
which requires ifdef'ing out a testcase in predefined-function.c.
llvm-svn: 47236
|
| |
|
|
| |
llvm-svn: 47233
|
| |
|
|
| |
llvm-svn: 47217
|
| |
|
|
| |
llvm-svn: 47202
|
| |
|
|
| |
llvm-svn: 47160
|
| |
|
|
| |
llvm-svn: 47154
|
| |
|
|
| |
llvm-svn: 47153
|
| |
|
|
|
|
| |
going on with mixing scopes, though.
llvm-svn: 47152
|
| |
|
|
| |
llvm-svn: 47103
|
| |
|
|
|
|
|
|
|
| |
tgmath.h.
Note that there is another issue with tgmath.h, so mandel.c still
doesn't work.
llvm-svn: 47069
|
| |
|
|
| |
llvm-svn: 47005
|
| |
|
|
| |
llvm-svn: 47003
|
| |
|
|
|
|
|
|
|
|
| |
http://llvm.org/bugs/show_bug.cgi?id=1987.
This commit only "guards" the call to ParseDeclarationSpecifiers() in ParseDeclarationOrFunctionDefinition().
We could consider guarding all calls, however this is a bit radical (since it effectively stops parsing the declaration once we have a bad declspec). Will discuss with Chris tomorrow.
llvm-svn: 46984
|
| |
|
|
|
|
| |
implicit cast expr or a paren expr.
llvm-svn: 46950
|
| |
|
|
| |
llvm-svn: 46946
|
| |
|
|
|
|
| |
Sema::CheckInitializerListTypes() needs to ignore invalid structures.
llvm-svn: 46942
|
| |
|
|
|
|
|
|
| |
is an array type not a pointer type. This requires updating some
diags that change and updating the code generator to handle the
proper form of strings.
llvm-svn: 46941
|
| |
|
|
|
|
| |
void*.
llvm-svn: 46939
|
| |
|
|
|
|
|
|
|
| |
completely
missing. Otherwise, it is an implicit int case, which is valid in c90 and invalid
elsewhere, but accepted as an extension.
llvm-svn: 46938
|
| |
|
|
| |
llvm-svn: 46919
|
| |
|
|
|
|
|
|
| |
submitted by Neil Booth.
Neil, can you point me to the place in the C99 spec that says this is allowed? I thought Expr::isLvalue() conformed to the spec, which says "C99 6.3.2.1: an lvalue is an expression with an object type or an incomplete type other than void.". Please advise.
llvm-svn: 46917
|