- Oct 18, 2012
-
-
Chad Rosier authored
llvm-svn: 166193
-
Fariborz Jahanian authored
llvm-svn: 166190
-
Chad Rosier authored
layer. Use the new ParseMSInlineAsm() API and add an implementation of the MCAsmParserSemaCallback interface. llvm-svn: 166184
-
Dmitri Gribenko authored
fixes the tests for builds without libxml2. llvm-svn: 166179
-
Richard Smith authored
llvm-svn: 166162
-
Argyrios Kyrtzidis authored
llvm-svn: 166161
-
Argyrios Kyrtzidis authored
llvm-svn: 166160
-
Richard Smith authored
expressions, not *any* typeid on a polymorphic class type. llvm-svn: 166156
-
David Blaikie authored
Fix -Woverloaded-virtual when the using statement refers to a base 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. llvm-svn: 166154
-
Richard Smith authored
llvm-svn: 166152
-
Fariborz Jahanian authored
other platforms. llvm-svn: 166151
-
Fariborz Jahanian authored
off. // rdar://12501960 llvm-svn: 166150
-
Richard Smith authored
llvm-svn: 166139
-
- Oct 17, 2012
-
-
Fariborz Jahanian authored
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. llvm-svn: 166130
-
Jordan Rose authored
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. llvm-svn: 166121
-
Jordan Rose authored
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> llvm-svn: 166120
-
Eric Christopher authored
debug info. llvm-svn: 166109
-
Chandler Carruth authored
Based loosely on a patch from David Hill. llvm-svn: 166096
-
Richard Smith authored
llvm-svn: 166090
-
John McCall authored
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. llvm-svn: 166088
-
John McCall authored
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. llvm-svn: 166085
-
David Blaikie authored
Only deleted functions may override deleted functions and non-deleted functions may only override non-deleted functions. llvm-svn: 166082
-
Eli Friedman authored
llvm-svn: 166078
-
Eli Friedman authored
llvm-svn: 166073
-
Douglas Gregor authored
target options around so they can be accessed at any point (rather than keeping them transient). llvm-svn: 166072
-
Richard Smith authored
explicitly specified iff it was specified in the declaration. llvm-svn: 166071
-
David Blaikie authored
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). llvm-svn: 166069
-
Manman Ren authored
rdar://12439123 llvm-svn: 166066
-
Derek Schuff authored
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. llvm-svn: 166065
-
Manman Ren authored
llvm-svn: 166064
-
- Oct 16, 2012
-
-
David Blaikie authored
(original functionality committed in r99807, refactored in r160373) llvm-svn: 166059
-
David Blaikie authored
llvm-svn: 166056
-
Manman Ren authored
We generalize r166040 to handle ABI alignment issues for all types. rdar://12439123 llvm-svn: 166052
-
Anna Zaks authored
@implementation. llvm-svn: 166047
-
Manman Ren authored
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 llvm-svn: 166043
-
Manman Ren authored
We create an aligned temporary space and copy the content over from ap.cur to the temporary space. This is necessary if the natural alignment of the type is greater than the ABI alignment. rdar://12439123 llvm-svn: 166040
-
David Blaikie authored
This implementation doesn't warn on anything that GCC doesn't warn on with the exception of templates specializations (GCC doesn't warn, Clang does). The specific skipped cases (boolean, constant expressions, enums) are open for debate/adjustment if anyone wants to demonstrate that GCC is being overly conservative here. The only really obvious false positive I found was in the Clang regression suite's MPI test - apparently MPI uses specific flag values in pointer constants. (eg: #define FOO (void*)~0) llvm-svn: 166039
-
Joerg Sonnenberger authored
don't try the normal GetOrCreateLLVM. The latter could drop the weak atrtibute on the second reference, if there is no explicit declaration of the aliasee. llvm-svn: 166032
-
Fariborz Jahanian authored
// rdar://12491143 llvm-svn: 166030
-
David Chisnall authored
metadata. llvm-svn: 166023
-