aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-10-18PR14021: Copy lookup results to ensure safe iteration.David Blaikie
Within the body of the loop the underlying map may be modified via Sema::AddOverloadCandidate -> Sema::CompareReferenceRelationship -> Sema::RequireCompleteType to avoid the use of invalid iterators the sequence is copied first. A reliable, though large, test case is available - it will be reduced and committed shortly. Patch by Robert Muth. Review by myself, Nico Weber, and Rafael Espindola. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166188 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-18[ms-inline asm] Move most of the AsmParsing logic in clang back into the MCChad Rosier
layer. Use the new ParseMSInlineAsm() API and add an implementation of the MCAsmParserSemaCallback interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166184 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-18Fix typo (test commit)Andy Gibbs
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166181 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-18Un-XFAIL some tests for comment to XML conversion. This reverts r166151 andDmitri Gribenko
fixes the tests for builds without libxml2. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166179 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-18Fixed some corner cases due to implicit int TypeLoc and simplified the logic.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166174 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-18Put used="1" on all used declarations in the XML dumper. This allows us toNick Lewycky
start seeing the bit so that we can find bugs and write tests for it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166171 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-18Start factoring the on-disk records for an AST file into a controlDouglas Gregor
block, which stores information about how the AST file to generated, from the AST block, which stores the actual serialized AST. The information in the control block should be enough to determine whether the AST file is up-to-date and compatible with the current translation unit, and reading it should not cause any side effects that aren't easy to undo. That way, we can back out from an attempt to read an incompatible or out-of-date AST file. Note that there is still more factoring to do. In particular, information about the source files used to generate the AST file (along with their time stamps, sizes, etc.) still resides in the source manager block. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166166 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-18Revert svn r165741 "Add TargetTransformInfo to the clang driver."Bob Wilson
Nadav's llvm change r165665 caused problems with an LTO bootstrap of clang, so I'm reverting it for now, along with follow-on patches like this one. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166164 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-18libclang/CXComment.cpp: Fix abuse of StringRef.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166163 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-18Tests for DR1507.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166162 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-18[libclang] Invoke a ppIncludedFile callback when indexing implicit module ↵Argyrios Kyrtzidis
imports. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166161 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-18[libclang] Add a test for annotation of module headersArgyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166160 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17Update comment to match DR1502.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166158 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17DR1535: only potentially-evaluated typeid expressions are disallowed in constantRichard Smith
expressions, not *any* typeid on a polymorphic class type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166156 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17Fix -Woverloaded-virtual when the using statement refers to a base ↵David Blaikie
declaration of a virtual function. GCC and Clang both do not warn on: struct a { virtual void func(); }; struct b: a { virtual void func(); void func(int); }; struct c: b { void func(int); using b::func; }; but if the "using" was using a::func GCC would still remain silent where Clang would warn. This change makes Clang consistent with GCC's existing behavior. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166154 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17DR1528: C++11 doesn't allow repeated cv-qualifiers in declarators after all.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166152 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17XFAIL these tests until I can figure out what is going on onFariborz Jahanian
other platforms. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166151 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17Adds couple of missing warning flags so warnings can be turnedFariborz Jahanian
off. // rdar://12501960 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166150 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17Add -std=c++1y argument, for *highly* experimental C++14 support.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166139 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17[Doc parsing]: This patch adds <Declaration> tag to Fariborz Jahanian
XML comment for declarations which pretty-prints declaration. I had to XFAIL one test annotate-comments.cpp. This test is currently unmaintainable as written. Dmitri G., can you see what we can do about this test. We should change this test such that adding a new tag does not wreck havoc to the test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166130 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17[analyzer] CmpRuns: cleanup APIs, allow processing of plists with noAnna Zaks
clang_version, fix the compare routine. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166129 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17[analyzer] When binding to a ParenExpr, bind to its inner expression instead.Jordan Rose
This actually looks through several kinds of expression, such as OpaqueValueExpr and ExprWithCleanups. The idea is that binding and lookup should be consistent, and so if the environment needs to be modified later, the code doing the modification will not have to manually look through these "transparent" expressions to find the real binding to change. This is necessary for proper updating of struct rvalues as described in the previous commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166121 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17[analyzer] Create a temporary region when accessing a struct rvalue.Jordan Rose
In C++, rvalues that need to have their address taken (for example, to be passed to a function by const reference) will be wrapped in a MaterializeTemporaryExpr, which lets CodeGen know to create a temporary region to store this value. However, MaterializeTemporaryExprs are /not/ created when a method is called on an rvalue struct, even though the 'this' pointer needs a valid value. CodeGen works around this by creating a temporary region anyway; now, so does the analyzer. The analyzer also does this when accessing a field of a struct rvalue. This is a little unfortunate, since the rest of the struct will soon be thrown away, but it does make things consistent with the rest of the analyzer. This allows us to bring back the assumption that all known 'this' values are Locs. This is a revised version of r164828-9, reverted in r164876-7. <rdar://problem/12137950> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166120 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17Move -Wint-to-pointer-cast from -Wall to -Wmost to group it with more things.David Blaikie
Addressing feedback on r166039 given by Matt Beaumont-Gay. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166118 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17Revert r158009 since there are some uses of artificial functions inEric Christopher
debug info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166109 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17Fix tests, which accidentally matched implicit code on specificDaniel Jasper
platforms to make buildbots happy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166100 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17Remove an unneeded flag from the bitrig driver tests.Chandler Carruth
Based loosely on a patch from David Hill. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166096 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17First version of matchers for Types and TypeLocs.Daniel Jasper
Review: http://llvm-reviews.chandlerc.com/D47 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166094 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17Update test FIXME: The '[]' in 'delete []' is never part of a lambda.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166090 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17Set a special flag in class metadata when an Objective-C classJohn McCall
has ivars that require destruction, but none that require anything except zero-initialization. This is common in ARC and (when true throughout a class hierarchy) permits the elimination of an unnecessary message-send during allocation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166088 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17Organize and rename the magic constants for class flags.John McCall
No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166087 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17At -O0, prefer objc_storeStrong with a null new value to theJohn McCall
combination of a load+objc_release; this is generally better for tools that try to track why values are retained and released. Also use objc_storeStrong when copying a block (again, only at -O0), which requires us to do a preliminary store of null in order to compensate for objc_storeStrong's assign semantics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166085 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17Implement C++ 10.3p16 - overrides involving deleted functions must match.David Blaikie
Only deleted functions may override deleted functions and non-deleted functions may only override non-deleted functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166082 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17"'Might as well make it static const.' -- John McCall" -- Michael ScottNico Weber
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166080 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-17Fix the handling of target options in our unit tests.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166079 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16Move test to a more appropriate place.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166078 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16Fix pretty-printing for variables declared in a condition. Patch by ↵Eli Friedman
Grzegorz Jablonski. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166073 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16Serialize TargetOptions into an AST file, and make sure that we keepDouglas Gregor
target options around so they can be accessed at any point (rather than keeping them transient). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166072 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16DR1492: In a definition of a destructor, the exception specification must beRichard Smith
explicitly specified iff it was specified in the declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166071 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16PR13684: Emit vtable entries for deleted functions as __cxa_deleted_function.David Blaikie
This is consistent/interoperable with GCC 4.7 (& __cxa_deleted_function isn't present in 4.4 - not sure when it got added, but you'll need something with that function available for this to work). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166069 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16ARM ABI: fix testing case arm-abi-vector.c by using [[VAR]]Manman Ren
rdar://12439123 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166066 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16Add pnaclcall convention to Native Client targets.Derek Schuff
Because PNaCl bitcode must be target-independent, it uses some different bitcode representations from other targets (e.g. byval and sret for structures). This means that without additional type information, it cannot meet some native ABI requirements for some targets (e.g. passing structures containing unions by value on x86-64). To allow generation of code which uses the correct native ABIs, we also support triples such as x86_64-nacl, which uses target-dependent IR (as opposed to le32-nacl, which uses byval and sret). To allow interoperation between the two types of code, this patch adds a calling convention attribute to be used in code compiled with the target-dependent triple, which will generate code using the le32-style bitcode. This calling convention does not need to be explicitly supported in the backend because it determines bitcode representation rather than native conventions (the backend just needs to undersand how to handle byval and sret for the Native Client OS). This patch implements __attribute__((pnaclcall)) to generate calls in bitcode according to the le32 bitcode conventions, an attribute which is accepted by any Native Client target, but issues a warning otherwise. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166065 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16XFAIL this testing case to recover buildbotManman Ren
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166064 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16[ms-inline asm] Move some logic around to simplify the interface between theChad Rosier
front-end and the AsmParser. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166063 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16Test pure virtual vtable entries in the Itanium ABI.David Blaikie
(original functionality committed in r99807, refactored in r160373) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166059 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16Note deleted functions when dumping vtables.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166056 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16ARM ABI: fix ABI alignment issues in varargs.Manman Ren
We generalize r166040 to handle ABI alignment issues for all types. rdar://12439123 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166052 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16[analyzer] Expose clang_version in CmpRunsAnna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166048 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16[analyzer] Ivar Invalidation: track ivars in continuations andAnna Zaks
@implementation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166047 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16ARM ABI: passing illegal vector types as varargs.Manman Ren
We expand varargs in clang and the call site is handled in the back end, it is hard to match exactly how illegal vectors are handled in the backend. Therefore, we legalize the illegal vector types in clang: if (Size <= 32), legalize to i32. if (Size == 64), legalize to v2i32. if (Size == 128), legalize to v4i32. if (Size > 128), use indirect. rdar://12439123 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166043 91177308-0d34-0410-b5e6-96231b3b80d8