aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-03-12[Sema] -Add an invalid objc category to the DeclContext so that it can beArgyrios Kyrtzidis
serialized -Don't add methods of invalid objc containers to the global method pool. This protects us from trying to serialize a method whose container was not serialized. Part of rdar://11007039. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152566 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-12ObjCBoolLiterals (__objc_yes/__objc_no) behave like C++ booleans ↵Jordy Rose
(true/false). They are NOT objects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152564 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-12objective-c modern translator: ivar offset symbolsFariborz Jahanian
will reside in .objc_ivar$B sections. // rdar://11023490 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152563 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-12Fix a crash-on-invalid found by -Wlogical-op-parentheses.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152559 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-12Use ZeroLengthBitfieldAlignment for AAPCS, as well as APCS-GNU.James Molloy
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152552 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-12Fix parsing of trailing-return-type. Types are syntactically prohibited fromRichard Smith
being defined here: [] () -> struct S {} does not define struct S. In passing, implement DR1318 (syntactic disambiguation of 'final'). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152551 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-12Fix parsing of type-specifier-seq's. Types are syntactically allowed to beRichard Smith
defined here, but not semantically, so new struct S {}; is always ill-formed, even if there is a struct S in scope. We also had a couple of bugs in ParseOptionalTypeSpecifier caused by it being under-loved (due to it only being used in a few places) so merge it into ParseDeclarationSpecifiers with a new DeclSpecContext. To avoid regressing, this required improving ParseDeclarationSpecifiers' diagnostics in some cases. This also required teaching ParseSpecifierQualifierList about constexpr... which incidentally fixes an issue where we'd allow the constexpr specifier in other bad places. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152549 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-11Fix typo in comment, 'langauge' -> 'language'.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152547 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-11objective-c modern abi rewriter: provide section pragmas forFariborz Jahanian
statically writter metadata. // rdar://11023490 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152546 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-11Document the weak-linking behavior of the availability attributeDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152543 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-11Update library dependencies to add clangEdit on c-index-test and c-arcmt-test.NAKAMURA Takumi
To link with -static -lclang, linker tries to seek not libclang.so, clang.dll nor libclang.dll.a, but libclang.a. USEDLIBS should have correct dependencies for -static. (In contrast, USEDLIBS=libclang.so might be enough w/o -static) FYI, cygwin build (in buildbot) is using -static, due to avoiding weirdness of extremely slower startup lag of clang.exe. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152539 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-11Unify naming of LangOptions variable/get function across the Clang stack ↵David Blaikie
(Lex to AST). The member variable is always "LangOpts" and the member function is always "getLangOpts". Reviewed by Chris Lattner git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152536 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-11llvm::SwitchInstStepan Dyatkovskiy
Renamed methods caseBegin, caseEnd and caseDefault with case_begin, case_end, and case_default. Added some notes relative to case iterators. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152533 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-11Document the availability attributeDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152531 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-11When template argument deduction is ignoring qualifiers, perform deepDouglas Gregor
structural comparison of non-dependent types. Otherwise, we end up rejecting cases where the non-dependent types don't match due to qualifiers in, e.g., a pointee type. Fixes PR12132. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152529 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-11cxx_status: No compiler changes are required for 'minimal support for garbageRichard Smith
collection'. Keep it in the table to match gcc's table, but mark it N/A. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152528 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-11Add a missing 'template' keyword.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152526 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-11[analyzer] Replace a static helper with existing logic. No functionality change.Jordy Rose
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152521 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10When determining whether an identifier followed by a '<' in a memberDouglas Gregor
access expression is the start of a template-id, ignore function templates found in the context of the entire postfix-expression. Fixes PR11856. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152520 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Fix crash & accepts-invalid for array of arrays of user defined type.David Blaikie
Test case/other help by Richard Smith. Code review by John McCall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152519 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Updated the test so that it checks for ms-compatibility in addition to ↵Aaron Ballman
ms-extensions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152516 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Adding namespace qualifiers to the visualizers and improving their behavior.Aaron Ballman
Patch thanks to Nikola Smiljanic git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152514 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10[clang.py] Implement Cursor.objc_type_encodingGregory Szorc
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152513 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10No longer defining GNUC mode when compiling for Microsoft compatibility. ↵Aaron Ballman
This allows people's cross-platform compiler-specific macros to work properly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152512 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Clarify even further that the lambda-to-block-pointer conversion is only ↵Douglas Gregor
available in Objective-C++ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152511 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10[clang.py] Refactor get_tu and get_cursor test helper functions into util.pyGregory Szorc
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152510 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10PR12225: The requirement that literal operators be namespace-scope functionsRichard Smith
does not imply that such functions can't be declared at block scope. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152509 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Use VersionTuple to manage macosx versions in the driver. No functionality ↵Benjamin Kramer
change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152504 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Simplify code. No functionality change.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152503 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10objective-c modern rewriter: add __declspec(dllexport) to forwardFariborz Jahanian
declaration of class metadata when they are defined later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152500 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10objc modern rewriter: Define __OBJC2__ in written file.Fariborz Jahanian
// rdar://11024543 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152496 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Replace a map of boolean values with a set.Benjamin Kramer
No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152494 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10The type of a definition should not increase its visibility. Fixes PR12221.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152493 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Remove BlockDeclRefExpr and introduce a bit on DeclRefExpr toJohn McCall
track whether the referenced declaration comes from an enclosing local context. I'm amenable to suggestions about the exact meaning of this bit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152491 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Slightly tweak this condition. "isTransparentContext()" was checking whether anNick Lewycky
enum is scoped or not, which is not relevant here. Instead, phrase the loop in the same terms that the standard uses, instead of this awkward set of conditions that is *nearly* equal. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152489 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Could not find this in C99. Perhaps this rule comes from a DR, but in any caseNick Lewycky
please annotate it with a note explaining why this wrong-seeming behaviour is correct. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152488 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Only make a call to a copy constructor elidable if in fact we areDouglas Gregor
doing a copy. Fixes PR12139. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152485 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10[Sema] A tag decl that is marked as invalid and is used in a decl-spec,Argyrios Kyrtzidis
should not impede creating a proper TypeLoc info for the decl-spec. This improves our semantic error recovery. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152481 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Remove the part of test/Sema/pragma-pack-2.c that has irregular "#pragma pack"s.Argyrios Kyrtzidis
Before r151307 this part worked without compiler errors but now it only verifies that our handling of irregular pragmas is broken compared to gcc, it has no practical usefulness; it creates invalid structs that cannot be used for 'offsetof' testing. If we later decide to handle irregular pragmas without compiler errors we can put back this part. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152480 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Unify the BlockDeclRefExpr and DeclRefExpr paths so thatJohn McCall
we correctly emit loads of BlockDeclRefExprs even when they don't qualify as ODR-uses. I think I'm adequately convinced that BlockDeclRefExpr can die. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152479 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Fix the dumping of BlockExprs.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152478 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10test/Rewriter/rewrite-modern-ivars-2.mm: Add "-triple i386-apple-darwin9".NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152476 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Fix a use of the C99 PRI format macros not to conflict with C++11 UDLs.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152475 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Make sure the accessors for overridden methods don't return inherited ↵Eli Friedman
constructors. Fixes PR12219. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152470 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10objc modern rewriter: don't export @package ivar symbols.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152469 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10[analyzer] fix regression in analyzer of NOT actually aborting on Stmts it ↵Ted Kremenek
doesn't understand. We registered as aborted, but didn't treat such cases as sinks in the ExplodedGraph. Along the way, add basic support for CXXCatchStmt, expanding the set of code we actually analyze (hopefully correctly). Fixes: <rdar://problem/10892489> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152468 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10IRgen/ABI/x86_64: Avoid passing small structs using byval sometimes.Daniel Dunbar
- We do this when it is easy to determine that the backend will pass them on the stack properly by itself. Currently LLVM codegen is really bad in some cases with byval, for example, on the test case here (which is derived from Sema code, which likes to pass SourceLocations around):: struct s47 { unsigned a; }; void f47(int,int,int,int,int,int,struct s47); void test47(int a, struct s47 b) { f47(a, a, a, a, a, a, b); } we used to emit code like this:: ... movl %esi, -8(%rbp) movl -8(%rbp), %ecx movl %ecx, (%rsp) ... to handle moving the struct onto the stack, which is just appalling. Now we generate:: movl %esi, (%rsp) which seems better, no? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152462 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Minor change to my last rewrite patch.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152461 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10objc modern rewriter: Mark class and ivar definitions with __declspec(dllexport)Fariborz Jahanian
// rdar://11023563 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152459 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Qualifiers on a canonical array type go on the outermost type, not theDouglas Gregor
innermost type. Fixes PR12142. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152456 91177308-0d34-0410-b5e6-96231b3b80d8