aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-11-19clang/test: Suppress two tests on LLP64 target, Windows x64.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168303 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-19Completely re-work how the Clang driver interprets PIC and PIE options.Chandler Carruth
There were numerous issues here that were all entangled, and so I've tried to do a general simplification of the logic. 1) The logic was mimicing actual GCC bugs, rather than "features". These have been fixed in trunk GCC, and this fixes Clang as well. Notably, the logic was always intended to be last-match-wins like any other flag. 2) The logic for handling '-mdynamic-no-pic' was preposterously unclear. It also allowed the use of this flag on non-Darwin platforms where it has no actual meaning. Now this option is handled directly based on tests of how llvm-gcc behaves, and it is only supported on Darwin. 3) The APIs for the Driver's ToolChains had the implementation ugliness of dynamic-no-pic leaking through them. They also had the implementation details of the LLVM relocation model flag names leaking through. 4) The actual results of passing these flags was incorrect on Darwin in many cases. For example, Darwin *always* uses PIC level 2 if it uses in PIC level, and Darwin *always* uses PIC on 64-bit regardless of the flags specified, including -fPIE. Darwin never compiles in PIE mode, but it can *link* in PIE mode. 5) Also, PIC was not always being enabled even when PIE was. This isn't a supported mode at all and may have caused some fallout in builds with complex PIC and PIE interactions. The result is (I hope) cleaner and clearer for readers. I've also left comments and tests about some of the truly strage behavior that is observed on Darwin platforms. We have no real testing of Windows platforms and PIC, but I don't have the tools handy to figure that out. Hopefully others can beef up our testing here. Unfortunately, I can't test this for every platform. =/ If folks have dependencies on these flags that aren't covered by tests, they may break. I've audited and ensured that all the changes in behavior of the existing tests are intentional and good. In particular I've tried to make sure the Darwin behavior (which is more suprising than the Linux behavior) also matches that of 'gcc' on my mac. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168297 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-19Remove a no-op 'const' from a by-value return type.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168296 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-19RecursiveASTVisitor.h: Rework Doug's r160404, "Eliminating the GCC_CAST ↵NAKAMURA Takumi
hack, take two." With this, ARCMT tests would not crash on certain hosts with g++ -O2, eg. cygwin g++-4.5.3. r160404 crashed mingw32-g++-4.4.0. I guess method's pointer in conditional expression could not be handled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168295 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-18Remove redundant (duplicated) check.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168293 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-18clang/test/Sema/warn-documentation.cpp: Try to fix up the testcase in r168277.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168278 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-18Documentation parsing: propely handle a lone '\endverbatim' and emit a warning.Dmitri Gribenko
We actually used to assert on this. Thanks to NAKAMURA Takumi for noticing this! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168277 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17Fix Doxygen comment start sequence.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168276 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17Clean up code according to coding standardsAndy Gibbs
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168274 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17objective-C: Do not issue deprecated warning about implementationFariborz Jahanian
of a deprecated method in original class (or category), only in overrides. // rdar://12717705 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168270 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17Fix crash on end-of-file after \ in a char literal, fixes PR14369.Nico Weber
This makes LexCharConstant() look more like LexStringLiteral(), which doesn't have this bug. Add tests for eof after \ for several other cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168269 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17Prevent premature macro expansion in __has_builtin, __has_feature,Andy Gibbs
__has_attribute, __has_extension, making them behave more akin to conventional macros. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168268 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17Made the "expected string literal" diagnostic more expressiveAndy Gibbs
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168267 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17Refactored duplicate string literal lexing code within Preprocessor, into aAndy Gibbs
common LexStringLiteral function. In doing so, some consistency problems have been ironed out (e.g. where the first token in the string literal was lexed with macro expansion, but subsequent ones were not) and also an erroneous diagnostic has been corrected. LexStringLiteral is complemented by a FinishLexStringLiteral function which can be used in the situation where the first token of the string literal has already been lexed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168266 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17Fix handling of invalid uses of the __has_warning builtin macroAndy Gibbs
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168265 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17Enable inlining of 4 byte atomic ops on ppc32, 8 byte atomic ops on ppc64.Benjamin Kramer
Also fixes a bit/byte mismatch when checking if a target supports atomic ops of a certain size. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168260 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17Remove copy ctor that provides no value over the default.Benjamin Kramer
It's also simpler to just copy the words than mangling bits like this ctor did. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168258 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17Further reduce "-fsyntax-only -Wuninitialized" time on sqlite3.c by another ↵Ted Kremenek
2.5% using intelligent pruning of blocks during the final reporting pass. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168257 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17Switch -Wuninitialized to use a reverse-post order traversal asTed Kremenek
an initial baseline for enqueued blocks, but use a simple DFS stack for propagating changes quickly up back edges. This provides a 3.5% reduction in -fsyntax-only time on sqlite3.c. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168241 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17Add missing features for misc x86 CPUs to CPU feature translation. Patch by ↵Eli Friedman
Jung-uk Kim. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168239 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17Clean up X86 target feature translation code slightly. No intended ↵Eli Friedman
functional change. Patch by Jung-uk Kim. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168237 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16Typo.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168222 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16Revert r167799. It's not really correct, and it doesn't fix the problem that ↵Bill Wendling
it was intended to fix. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168217 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16Testcase overriding-ftemplate-comments.cpp: use [[@LINE]] to make it less ↵Dmitri Gribenko
fragile. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168213 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16[driver] Add the missing TY_PP_ObjCXX_Alias case to the isCXX function.Chad Rosier
This was causing different behavior when using -x objective-c++-cpp-output as compared to -x objc++-cpp-output. Specifically, the driver was not adding the -fcxx-exceptions flag in the latter case. rdar://12680312 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168212 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16StmtDumper: remove incomplete support for limiting the maximum dump depth.Dmitri Gribenko
There are better ways of limiting the amount of information if there is a need for that. Patch by Philip Craig. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168206 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16Fix partial-match-bind-behavior with forEachDescendant() matchers.Daniel Jasper
The problem is that a partial match of an (explicit or implicit) allOf matcher binds results, i.e. recordDecl(decl().bind("x"), hasName("A")) can very well bind a record that is not named "A". With this fix, the common cases of stumbling over this bug are fixed by the BoundNodesMap overwriting the results of a partial match. An error can still be created with a weird combination of anyOf and allOf (see inactive test). We need to decide whether this is worth fixing, as the fix will have performance impact. Review: http://llvm-reviews.chandlerc.com/D124 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168177 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16[analyzer] SATestBuild.py: fix broken string concatenationJordan Rose
This has been broken for a while, but the branch was never being taken. (We were trying to do 'str + floatVal'; now we do 'str % intVal' and use the '%d' format.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168174 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16Make libASTMatchers link its dependencies. libRewriteFrontend depends on ↵Benjamin Kramer
libRewriteCore. LLVM_USED_LIBS does nothing here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168172 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16UBSan: enable proper linking with UBsan runtime on Darwin. Turn on building ↵Alexey Samsonov
ubsan on OS X in 'make' build system. Patch by Jean-Daniel Dupas. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168168 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16Store this Decl* as a Decl* instead of a uintptr_t. No functionality change.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168145 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16clang/unittests: Fixup corresponding to Doug's r168136.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168137 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16Since CreateTargetInfo is taking ownership of the target options, passDouglas Gregor
it as a pointer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168136 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16Remove unused diagnosticsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168135 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16Revert r168132, "clang/test/lit.cfg: Suppress the feature 'dev-fd-fs' for ↵NAKAMURA Takumi
now." I missed Daniel's r168095 by my accident. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168134 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16[libclang] When caching code-completion results, pass the ↵Argyrios Kyrtzidis
CachedCompletionAllocator to the CodeCompletionTUInfo that is going to be used to get the results. Previously we would use ASTUnit's CodeCompletionTUInfo which has its own allocator that will go away when we reparse. That could result in a use-after-free bug when getting the parent context name from a CodeCompletionString. Addresses rdar://12568377. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168133 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16clang/test/lit.cfg: Suppress the feature 'dev-fd-fs' for now.NAKAMURA Takumi
None of my buildhost (centos6 x86-64 and cygwin) is passing. Investigating. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168132 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16CPP Output: Do not emit an enter file marker for the main file.Daniel Dunbar
- This diverges from gcc, and confuses tools (like dtrace) which track # line markers as a way to determine which content is in the context of the main file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168128 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16Take into account the zero sign bit for positive numbers when computing the bitRichard Trieu
width of an enum with negative values in IntRange. Include a test for -Wtautological-constant-out-of-range-compare where this had manifested. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168126 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16Fix PR14321, a crash when Clang is built with GCC 4.7 at -O1 or greater.Matt Beaumont-Gay
GCC 4.7 reuses stack slots fairly aggressively, which exposes more temporary lifetime bugs. No new test, this was caught by the existing CodeGenCXX/mangle-ms-templates.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168124 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16A step towards sorting out handling of triviality of special members in C++11.Richard Smith
Separate out the notions of 'has a trivial special member' and 'has a non-trivial special member', and use them appropriately. These are not opposites of one another (there might be no special member, or in C++11 there might be a trivial one and a non-trivial one). The CXXRecordDecl predicates continue to produce incorrect results, but do so in fewer cases now, and they document the cases where they might be wrong. No functionality changes are intended here (they will come when the predicates start producing the right answers...). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168119 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16Mention the lldb formatters in the clang wiki under debugging.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168118 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16[ClangDataFormat.py] Add summary for QualType.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168117 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15Make sure CodeGenTypes correctly reconverts function types. Fixes PR14355, ↵Eli Friedman
a crash in IR generation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168112 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15PR9903: Recover from a member functon declared with the 'typedef' specifier byRichard Smith
dropping the specifier, just like we do for non-member functions and function templates declared 'typedef'. Patch by Brian Brooks! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168108 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15[analyzer] CmpRuns: move the clang_version info into the run (out ofAnna Zaks
report) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168105 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15Comment to XML conversion test: correct filename.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168101 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15[analyzer] SATestBuild.py: correctly add -j option for projects using make.Jordan Rose
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168099 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15Split annotate-comments.cpp into a fragile (that uses hardcoded line numbers)Dmitri Gribenko
and a non-fragile (that uses [[@LINE]]) parts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168098 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15tests: Mark the /dev/fd test as requiring Darwin until I can test on other OSes.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168095 91177308-0d34-0410-b5e6-96231b3b80d8