aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-09-13Promote the warning about extra qualification on a declaration from aDouglas Gregor
warning to an error. C++ bans it, and both GCC and EDG diagnose it as an error. Microsoft allows it, so we still warn in Microsoft mode. Fixes <rdar://problem/11135644>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163831 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Remove speculative fix for C++ core issue 1407, since it was resolved as NAD.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163829 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Fix grammar.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163828 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Recover properly after a parse error in a static_assert declaration.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163826 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Use a "better" unicode character, to avoid buildbot breakage on bots which ↵Richard Smith
can print some unicode characters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163825 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Move back the stuff about missing ownership attribute warningFariborz Jahanian
to SemaDeclObjC and apply some simplification per John's comment. // rdar://12280826 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163824 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Make TextDiagnostic more robust against SourceLocations which point into theRichard Smith
middle of UTF-8 characters, and avoid walking to such positions when adjusting column ranges for display. Fixes a couple of hangs when rendering diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163820 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13When warning about unsafe uses of dispatch_once, specially handle theTed Kremenek
crazy case where dispatch_once gets redefined as a macro that calls _dispatch_once (which calls the real dispatch_once). Users want to see the warning in their own code. Fixes <rdar://problem/11617767> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163816 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Move no explicit ownership warning to SemaType.cpp.Fariborz Jahanian
// rdar://12280826 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163813 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Add tests for r163778.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163812 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13This patch introduces A15 as a target in Clang.Silviu Baranga
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163804 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13ASTMatchersMacros.h: Appease msvc.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163798 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Create initial support for matching and binding NestedNameSpecifier(Loc)s.Daniel Jasper
Review: http://llvm-reviews.chandlerc.com/D39 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163794 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Fix Doxygen misuse: refer to parameter names in paragraphs correctly (\arg isDmitri Gribenko
not what most people want -- it starts a new paragraph). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163793 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Add missing accessor.Manuel Klimek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163792 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Conditionally parse documentation comments in system headers byTed Kremenek
passing -fretain-comments-from-system-headers. By default, the compiler no longer parses such documentation comments, as they can result in a noticeable compile time/PCH slowdown. Fixes <rdar://problem/11860820>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163778 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Properly link libpthread_p when using profiling on OpenBSD.Eric Christopher
Patch by Brad Smith. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163777 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13InitHeaderSearch.cpp: [mingw] Handle DOSish paths only on Win32 hosts.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163776 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13clang/lib/Analysis/ObjCNoReturn.cpp: Fix [-Wnewline-eof]NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163775 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Format strings: offer a fixit for Darwin's %D/%U/%O to ISO %d/%u/%o.Jordan Rose
<rdar://problem/12061922> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163772 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Format strings: %D, %U, and %O are valid on Darwin (same as %d, %u, %o).Jordan Rose
These will warn under -Wformat-non-iso, and will still be rejected outright on other platforms. <rdar://problem/12061922> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163771 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13[analyzer] Don't reimplement an existing function.Anna Zaks
Thanks Jordan. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163762 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Teach -Wuninitialized to recognize common "noreturn" idioms inTed Kremenek
Objective-C related to NSException. Fixes <rdar://problem/12287498> I debated whether or not this logic should be sunk into the CFG itself. It's not clear if we should, as different analyses may wish to have different policies. We can re-evaluate this in the future. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163760 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Refactor logic in ExprEngine for detecting 'noreturn' methodsTed Kremenek
in NSException to a helper object in libAnalysis that can also be used by Sema. Not sure if the predicate name 'isImplicitNoReturn' is the best one, but we can massage that later. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163759 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Add a few FIXMEs.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163758 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13[ms-inline asm] Handle the enumeration of input and output expressions in aChad Rosier
more robust way to address a few FIXMEs. The initial implementation, r163342, built the IR asm string and then tried to patch things on the fly without enough context. Specifically, it didn't skip mnemonics nor did it track with assembly instruction an expression was related to. The new implementation patches the operands and then builds the final IR string. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163756 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12Reapply:Eric Christopher
Make clang emit a flag for DW_AT_object_pointer for the artificial args where it should (implicit first arguments). FileCheck-ize a test as well and update tests to take into account the object pointer flag. rdar://9797999 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163755 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12Add two new functions to Qualifiers.Richard Trieu
static Qualifiers removeCommonQualifiers(Qualifiers &L, Qualifiers &R) Removes the common qualifiers from L and R and returns them in a new Qualifier. This will be used in template diffing. void removeQualifiers(Qualifiers Q) Removes the qualifiers in Q from the current qualifier. This replaces the current underlying implementation of operator- and operator -= which only performed bit masking. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163752 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12Whitespace.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163751 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12[analyzer] Do not report use of undef on "return foo();" when the return ↵Anna Zaks
type is void. Fixes a false positive found by analyzing LLVM code base. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163750 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12[analyzer] Fix another false positive in malloc realloc logic.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163749 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12[analyzer] Teach UndefOrNullArgVisitor to track parent regions.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163748 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12[analyzer] Fix another use of the address of a temporary, like r163402.Jordan Rose
Again, GCC is more aggressive about reusing temporary space than we are, leading to Release build crashes for this undefined behavior. PR13710 (though it may not be the only problem there) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163747 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12[analyzer] Re-add reinterpret_cast virtual call test case from r163644.Jordan Rose
We mostly just don't want to crash analyzing this test case; it's likely the code found here will actually crash if compiled and run. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163746 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12[analyzer] Handle when the dynamic type is worse than the static type.Jordan Rose
Currently we don't update the dynamic type of a C++ object when it is cast. This can cause the situation above, where the static type of the region is now known to be a subclass of the dynamic type. Once we start updating DynamicTypeInfo in response to the various kinds of casts in C++, we can re-add this assert to make sure we don't miss any cases. This work is tracked by <rdar://problem/12287087>. In -Asserts builds, we will simply not return any runtime definition when our DynamicTypeInfo is known to be incorrect like this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163745 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12Revert "[analyzer] Use the static type for a virtual call if the dynamic ↵Jordan Rose
type is worse." Using the static type may be inconsistent with later calls. We should just report that there is no inlining definition available if the static type is better than the dynamic type. See next commit. This reverts r163644 / 19d5886d1704e24282c86217b09d5c6d35ba604d. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163744 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12objective-C++ test for my previous patch.Fariborz Jahanian
// rdar://12280826 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163741 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12Rename isA to isSameOrDerivedFrom.Daniel Jasper
There are two evils we can choose from: - Name overlap between isA-matcher and llvm::isa<>() - Bad name for what the isA-matcher currently does After some discussion we have agreed to go with the latter evil. Review: http://llvm-reviews.chandlerc.com/D40 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163740 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12objective-C arc: don't issue no explicit ownership warning whenFariborz Jahanian
__autoreleasing is explicitely added to param type. // rdar://12280826 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163738 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12Fix test case for Release builds.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163737 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12Revert "Make clang emit a flag for DW_AT_object_pointer for the artificial"Eric Christopher
this should be done on the subprogram, not the variable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163733 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12[ms-inline asm] Add a test case.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163731 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12[ms-inline asm] Test case for r163729.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163730 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12[ms-inline asm] If we have a single asm operand that maps to multipleChad Rosier
MCOperands then iterate over all of then when computing clobbers, inputs and outputs. On x86 the 1-to-many mapping is a memory operand that includes a BaseReg(reg), MemScale(imm), MemIndexReg(reg), an Expr(MCExpr or imm) and a MemSegReg(reg). Invalid register (Op.getReg() == 0) are not considered when computing clobber. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163728 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12Comment parsing: recognize more Doxygen commandsDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163723 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12Fix a couple of Doxygen issues pointed out by -Wdocumentation.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163722 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12Revert "objective-C: warn under a flag if missing argument"Ted Kremenek
We plan on discussing this more, but we shouldn't have it in the compiler in an incomplete state. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163720 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12Revert "objective-C: warn if selector has nothing but bare"Ted Kremenek
We plan on discussing this more. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163719 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12clang/test: [PR13820] Suppress LLP64-incompatible tests for ObjC with +Asserts.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163709 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12clang/test/CodeGen/2008-01-25-ZeroSizedAggregate.c: [PR8833] Add REQUIRES: ↵NAKAMURA Takumi
LP64. It fails with +Asserts for Win64. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163708 91177308-0d34-0410-b5e6-96231b3b80d8