aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-02-17Implement a sub-group of -Wconversion: -Wliteral-conversion. ThisChandler Carruth
specifically targets literals which are implicitly converted, a those are more often unintended and trivial to fix. This can be especially helpful for diagnosing what makes 'const int x = 1e6' not an ICE. Original patch authored by Jim Meehan with contributions from other Googlers and a few cleanups from myself. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125745 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Change the representation of GNU ?: expressions to use a different expressionJohn McCall
class and to bind the shared value using OpaqueValueExpr. This fixes an unnoticed problem with deserialization of these expressions where the deserialized form would lose the vital pointer-equality trait; or rather, it fixes it because this patch also does the right thing for deserializing OVEs. Change OVEs to not be a "temporary object" in the sense that copy elision is permitted. This new representation is not totally unawkward to work with, but I think that's really part and parcel with the semantics we're modelling here. In particular, it's much easier to fix things like the copy elision bug and to make the CFG look right. I've tried to update the analyzer to deal with this in at least some obvious cases, and I think we get a much better CFG out, but the printing of OpaqueValueExprs probably needs some work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125744 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17lib/Frontend/InitHeaderSearch.cpp: Add mingw-w64's include paths.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125743 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 instead.NAKAMURA Takumi
No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125742 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Fix whitespace.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125741 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Devirtualize Decl::getNextRedeclaration().Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125740 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Implement -Wenum-compare, which warns when comparing two enums ofChandler Carruth
different types. We omit the warning when the enum types are anonymous. Unlike GCC, this warning does not distinguish between C++ and C/ObjC for controling whether it is on by default, it is always on by default. Original patch contributed by Richard Trieu (@ Google), I fixed some style issues, and cleaned it up for submission. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125739 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Simple little optimization to Decl::getCanonicalDecl(), eliminating some ↵Douglas Gregor
heavyweight machinery and indirection that we don't need git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125737 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Devirtualize Decl::getSourceRange()Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125736 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Devirtualize Decl::getCanonicalDecl().Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125735 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Step #1/N of implementing support for __label__: split labels intoChris Lattner
LabelDecl and LabelStmt. There is a 1-1 correspondence between the two, but this simplifies a bunch of code by itself. This is because labels are the only place where we previously had references to random other statements, causing grief for AST serialization and other stuff. This does cause one regression (attr(unused) doesn't silence unused label warnings) which I'll address next. This does fix some minor bugs: 1. "The only valid attribute " diagnostic was capitalized. 2. Various diagnostics printed as ''labelname'' instead of 'labelname' 3. This reduces duplication of label checking between functions and blocks. Review appreciated, particularly for the cindex and template bits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125733 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Devirtualize Decl::getBody() and Decl::hasBody().Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125731 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17De-virtualize Decl::isOutOfLine().Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125730 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17When printing a qualified type, look through a substituted templateDouglas Gregor
parameter type to see what's behind it, so that we don't end up printing silly things like "float const *" when "const float *" would make more sense. Also, replace the pile of "isa" tests with a simple switch enumerating all of the cases, making a few more obvious cases use prefix qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125729 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17simplify a bit.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125724 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17tidy upChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125723 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Improve parser recovery in "for" statements, from Richard Smith!Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125722 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17I will not hold on to temporary StringRefs.Douglas Gregor
I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125718 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17When Parser::ParseExpressionList isn't given a completer, fall back toDouglas Gregor
normal "expression" completion. Fixes the most annoying code-completion bug I've found. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125715 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Fix PR9025 and add a diagnostic (and sometimes a fixit) for an overloadedMatt Beaumont-Gay
function name used as the base of a member expression. Early feedback from Chandler Carruth, and code review from Nick Lewycky. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125714 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Bump up IdentifierInfo::ObjCOrBuiltinID to use 11 bits instead of 10. Fixes ↵Ted Kremenek
PR 9231. Apparently we can blow out the number of builtin IDs on FreeBSD with only 10 bits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125713 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Begin overhaul of scan-build/ccc-analyzer's handling of checker options.Ted Kremenek
We now rely on 'clang --analyze' to provide the default set of checkers. We're still working on the new '-analyzer-checker <checker>' interface, and once that's ready we'll wire it up to scan-build. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125712 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Disable default synthesized properties until we can properly re-evaluate the ↵Ted Kremenek
feature. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125708 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17fix clang -MM output to escape spaces in filenames. This seems to beChris Lattner
the only character that GCC escapes. PR9224. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125707 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17update this test now that reassociate isn't stripping nsw's pointlessly.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125705 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Convert MaxFieldAlignment to CharUnits from bits. No change in functionalityKen Dyck
intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125704 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Improve diagnostics when property names an object type ofFariborz Jahanian
a forward class. // rdar://8851803 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125699 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Implement code completion results for the Objective-C Key-Value CodingDouglas Gregor
(KVC) and Key-Value Observing (KVO) protocols. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125696 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Ensure that the NRVO flag has some block to insert into. Fixes PR9178!Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125694 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Fix assertion failure in -Warray-bounds on template parameters used as arrays.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125693 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Block rewriting bug. Don't take address of captured Fariborz Jahanian
byref variables again when passing them to inner blocks. // rdar://9006279 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125690 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Placate Doug and change capitalization of diagnostic note.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125688 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Makes most methods in SVals.h conform to the naming guide. ReviewedZhanyong Wan
by kremenek. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125687 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-163000 Sema diagnostics should be enough for anyone.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125684 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Fix a thinko with llvm::Optional, which is clearly the most dangerous class ↵Douglas Gregor
template in the universe git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125679 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Teach the CXCodeCompleteResults results structure, which storesDouglas Gregor
code-completion results accessed via libclang, to extend the lifetime of the allocator used for cached global code-completion results at least until these completion results are destroyed. Fixes <rdar://problem/8997369>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125678 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16If preprocessed token introduced empty filename then use main translation ↵Devang Patel
unit's filename for debug info entries. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125672 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Improve the invalidation logic for the cache of global codeDouglas Gregor
completions. We now compute a hash of the names of all top-level declarations and macro definitions, and invalidate the cache when the hash value changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125670 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Teach PPChainedCallbacks to forward the InclusionDirective() callback.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125669 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Warning -> ExtWarnArgyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125664 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Remove this FIXME; clear up an unused variable; style.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125662 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Save a copy expression for non-trivial copy constructions of catch variables.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125661 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Adds a CMake target for the Basic lib's unit tests. Reviewed byZhanyong Wan
jyasskin and chapuni. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125657 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Improves CMakeLists.txt for Clang's unit tests: make "linkedZhanyong Wan
components" and "used libs" arguments of add_clang_unittest(). Reviewed by jyasskin and chapuni. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125652 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Tweak -Warray-bounds diagnostics based on feedback from Chandler.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125649 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16CMake: Tweak for Visual Studio 10 quirk at clang-standalone build.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125647 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16test/CMakeLists.txt: Don't depend on llvm toolchain at clang-standalone build.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125646 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Revert r125642. This broke the build? It should be a no-op.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125645 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16test/PCH/headersearch.cpp fails on Win32. Not trivial to fix.Francois Pichet
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125644 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16Convert the UnpackedAlignment field to CharUnits from bits. No change inKen Dyck
functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125643 91177308-0d34-0410-b5e6-96231b3b80d8