aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-02-07Add missing header from r174648Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174649 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Retain all hidden methods in the global method pool, because they may become ↵Douglas Gregor
visible <rdar://problem/13172858>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174648 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07libclang: reduce CXString abuseDmitri Gribenko
ContainerUSR is not really a CXString, but it should own the underlying memory buffer. Thus, it is better to change the type to std::string. This will not introduce extra copying overhead, since the workaround that is being removed was already making a copy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174647 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Rename -fmodule-cache-path <blah> to -fmodules-cache-path=<blah> for ↵Douglas Gregor
consistency. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174645 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Thread safety analysis: make sure that expressions in attributes are parsedDeLesley Hutchins
in an unevaluated context. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174644 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Testcase for r174477.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174640 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Enable overloading of OpenCL events - this is needed for the overloaded ↵Guy Benyei
OpenCL builtin functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174630 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07FileCheckize volatile testTim Northover
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174627 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Only check for volatile memcpys in test.Tim Northover
AArch64 handles aggFct's return struct slightly differently, leading to an extra memcpy. This test is fortunately only concerned about volatile copies, so we can modify the grep text to filter it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174621 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Add AArch64 wchar definition to testTim Northover
This should allow it to pass if the default triple is AArch64 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174620 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07XFAIL test that's inappropriate for AArch64 ABITim Northover
Only some ABIs require the "signext" attribute on parameters. On most platforms, however, it's a useful test so it's best not to limit it to some random arbitrary platform. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174619 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Permit ABIs where the caller extends the result (test change).Tim Northover
This test was written to make sure *something* sane is generated, not to test any ABI's signedness semantics. This should allow the test to pass if AArch64 is the default target. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174618 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Documentation: fix typo: stdard -> stdargDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174613 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Documentation: add information about builtin includes to FAQDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174612 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07libclang: CursorVisitor::VisitBuiltinTypeLoc(): Add OCLSampler. [-Wswitch]NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174606 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Implements equalsNode for Decl and Stmt.Manuel Klimek
This is a powerful tool when doing iterative refined matches, where another match is started inside the match callback of the first one; this allows for example to find out whether the node was in the condition or body of its parent if-statement. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174605 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Add OpenCL samplers as Clang builtin types and check sampler related ↵Guy Benyei
restrictions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174601 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Apply the pure-virtual odr rule to other constructs which can call overloadedNick Lewycky
operators. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174584 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Fix handling of module imports adding names to a DeclContext after qualifiedRichard Smith
name lookup has been performed in that context (this probably only happens in C++). 1) Whenever we add names to a context, set a flag on it, and if we perform lookup and discover that the context has had a lookup table built but has the flag set, update all entries in the lookup table with additional names from the external source. 2) When marking a DeclContext as having external visible decls, mark the context in which lookup is performed, not the one we are adding. These won't be the same if we're adding another copy of a pre-existing namespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174577 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Simplify FindExternalVisibleDeclsByName by making it return a bool indicatingRichard Smith
if it found any decls, rather than returning a list of found decls. This removes a returning-ArrayRef-to-deleted-storage bug from MultiplexExternalSemaSource (in code not exercised by any of the clang binaries), reduces the work required in the found-no-decls case with PCH, and importantly removes the need for DeclContext::lookup to be reentrant. No functionality change intended! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174576 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07-Wimplicit-fallthrough: fixed two cases where "fallthrough annotation in ↵Alexander Kornienko
unreachable code" was issued incorrectly. Summary: -Wimplicit-fallthrough: fixed two cases where "fallthrough annotation in unreachable code" was issued incorrectly: 1. In actual unreachable code, but not immediately on a fall-through execution path "fallthrough annotation does not directly precede switch label" is better; 2. After default: in a switch with covered enum cases. Actually, these shouldn't be treated as unreachable code for our purpose. Reviewers: rsmith Reviewed By: rsmith CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D374 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174575 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07objective-C modern translator. Fix up the translatedFariborz Jahanian
metadata to handle ivar bitfields. This is wip. // rdar://13138459 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174573 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07AST dumping: indicate the previous declaration for a redeclaration, andRichard Smith
indicate the semantic DC if it's not the lexical DC. In passing, correct the ascii-art child marker for a child of a FriendDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174570 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Be a little more permissive with -fmodules-ignore-macro= by removing ↵Douglas Gregor
everything after the second '=' if it is there. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174567 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Add a *San + modules FIXME.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174565 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Introduce -fmodules-ignore-macro=NNN to ignore a macro when building/loading ↵Douglas Gregor
modules. The use of this flag enables a modules optimization where a given set of macros can be labeled as "ignored" by the modules system. Definitions of those macros will be completely ignored when building the module hash and will be stripped when actually building modules. The overall effect is that this flag can be used to drastically reduce the number of Eventually, we'll want modules to tell us what set of macros they respond to (the "configuration macros"), and anything not in that set will be excluded. However, that requires a lot of per-module information that must be accurate, whereas this option can be used more readily. Fixes the rest of <rdar://problem/13165109>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174560 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Formatter: Move ObjC literal tests to its own test case.Nico Weber
Slightly expand the boxed expressions test with a few more snippets from http://clang.llvm.org/docs/ObjectiveCLiterals.html git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174559 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Detect when we end up trying to load conflicting module files.Douglas Gregor
This can happen when one abuses precompiled headers by passing more -D options when using a precompiled hedaer than when it was built. This is intentionally permitted by precompiled headers (and is exploited by some build environments), but causes problems for modules. First part of <rdar://problem/13165109>, detecting when something when horribly wrong. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174554 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Fix bug in the alignment of comments.Daniel Jasper
Before: const char *test[] = { // A "aaaa", // B "aaaaa", }; After: const char *test[] = { // A "aaaa", // B "aaaaa", }; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174549 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Become a little smarter with formatting long chains of pipes.Daniel Jasper
Assign a high penalty to breaking before "<<" if the previous token is a string literal ending in ":" or "=". Before: llvm::outs() << "aaaaaaaaaaaaaaaaa = " << aaaaaaaaaaaaaaaaa << "bbbbbbbbbbbbbbbbb = " << bbbbbbbbbbbbbbbbb << "ccccccccccccccccc = " << ccccccccccccccccc << "ddddddddddddddddd = " << ddddddddddddddddd << "eeeeeeeeeeeeeeeee = " << eeeeeeeeeeeeeeeee; After: llvm::outs() << "aaaaaaaaaaaaaaaaa = " << aaaaaaaaaaaaaaaaa << "bbbbbbbbbbbbbbbbb = " << bbbbbbbbbbbbbbbbb << "ccccccccccccccccc = " << ccccccccccccccccc << "ddddddddddddddddd = " << ddddddddddddddddd << "eeeeeeeeeeeeeeeee = " << eeeeeeeeeeeeeeeee; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174545 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Cleanup of ASTMatcher macros and adding support for overloaded matchers.Manuel Klimek
This is in preparation for adding other overloaded matchers. This change alone is a net win in LOC. I went through all matchers and looked whether we could now encode them as macro, or simplify them with the matcher atoms that were not available before. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174540 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Align trailing block comments like trailing line comments.Daniel Jasper
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174537 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Remove unneeded test. We have plenty of subgroup relations between warnings,Ted Kremenek
and for those we care about we should have a general way of testing them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174531 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Accept and ignore the -fextended-identifiers option.Jordan Rose
This was GCC's option to turn on UCN support, which we always have on now in C99 and C++ modes. Additionally, mark the -fno-extended-identifiers option as unsupported, since we don't support disabling UCNs in C99 and C++ modes. PR11538 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174530 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Eliminate a race condition with the global module index.Douglas Gregor
Essentially, a module file on disk could change size between the time we stat() it and the time we open it, and we need to be robust against such a problem. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174529 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Formatter: Correctly detect ObjC message expressions preceded by a comment.Nico Weber
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174521 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Fix handling of comments in macros.Manuel Klimek
We now correctly format: // Written as a macro, it is reformatted from: #define foo(a) \ do { \ /* Initialize num to zero. */ \ int num = 10; \ /* This line ensures a is never zero. */ \ int i = a == 0 ? 1 : a; \ i = num / i; /* This division is OK. */ \ return i; \ } while (false) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174517 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Much semicolon after namespaces.Manuel Klimek
We now leave the semicolon in the line of the closing brace in: namespace { ... }; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174514 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Fix formatting of ObjC method calls.Daniel Jasper
This fixes llvm.org/PR15165. We now correctly align: [image_rep drawInRect:drawRect fromRect:NSZeroRect operation:NSCompositeCopy fraction:1.0 ssssssssdd:NO hints:nil]; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174513 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Parse record declarations with token pasted identifiers.Manuel Klimek
This is pretty common in macros: #define A(X, Y) class X##Y {}; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174512 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Fix a formatting bug caused by comments in expressions.Daniel Jasper
This fixes llvm.org/PR15162. Before: bool aaaaaaaaaaaaa = // comment aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaaaaa; After: bool aaaaaaaaaaaaa = // comment aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaaaaa; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174508 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Optionally derive formatting information from the input file.Daniel Jasper
With this patch, clang-format can analyze the input file for two properties: 1. Is "int *a" or "int* a" more common. 2. Are non-C++03 constructs used, e.g. A<A<A>>. With Google-style, clang-format will now use the more common style for (1) and format C++03 compatible, unless it finds C++11 constructs in the input. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174504 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Fix an issue with the formatting of stars in default values.Daniel Jasper
Before: void f(int *a = d *e, int b = 0); After: void f(int *a = d * e, int b = 0); git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174500 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Adds a convenience function selectFirst to simplify matching.Manuel Klimek
A very common use case is to search for the first occurrence of a certain node that is a descendant of another node. In that case, selectFirst significantly simplifies the code at the client side. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174499 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Handle nested ObjC calls.Daniel Jasper
Properly handle annotation contexts while calculating extra information for each token. This enable nested ObjC calls and thus solves (most of) llvm.org/PR15164. E.g., we can now format: [contentsContainer replaceSubview:[subviews objectAtIndex:0] with:contentsNativeView]; Also fix a problem with the formatting of types in casts as this was trivial now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174498 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Formatter: No space after & and * in front of ObjC message expressions.Nico Weber
1. let determineStarAmp() check of unary operators before checking for "is next '['". That check was added in r173150, and the test from that revision passes either way. 2. change determineStarAmp() to categorize '*' and '&' after '=' as unary operator. 3. don't let parseSquare() overwrite the type of a '*' or '&' before the start of an objc message expression if has the role of unary operator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174489 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Don't check whether a friend declaration is correctly formed when instantiating,Nick Lewycky
we already checked it when parsing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174486 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Use a dyn_cast to avoid a crash when the TypeLoc is not a ConstantArrayTypeLoc.Chad Rosier
rdar://13153516 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174477 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06[Headers] Use standard builtin defines instead of typeof trickery.Daniel Dunbar
- The trickery can confuse more basic source processors, in particular the Unix conformance tool that wants to scan headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174475 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06Added test for r174461 that checks that the desired behavior also occurs in ↵Michael Gottesman
ObjC++ alongside ObjC. \end paranoia. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174471 91177308-0d34-0410-b5e6-96231b3b80d8