| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 184795
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of using -performSelectorXXX.
-performSelector: and friends return a value that is boxed as an Objective-C
pointer. Sometimes it is an Objective-C pointer, sometimes it isn't.
Some clients may wish to silence this warning based on calling
this method.
Fixes <rdar://problem/14147304>
llvm-svn: 184789
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The goal of this sugar node is to be able to look at an arbitrary
FunctionType and tell if any of the parameters were decayed from an
array or function type. Ultimately this is necessary to implement
Microsoft's C++ name mangling scheme, which mangles decayed arrays
differently from normal pointers.
Reviewers: rsmith
Differential Revision: http://llvm-reviews.chandlerc.com/D1014
llvm-svn: 184763
|
|
|
|
|
|
| |
namespaces to try for potential typo corrections.
llvm-svn: 184762
|
|
|
|
|
|
|
| |
CheckParmForFunctionDef performs standard checks for type completeness
and other things like a destructor check for the MSVC++ ABI.
llvm-svn: 184740
|
|
|
|
|
|
| |
Patch by Robert Wilhelm.
llvm-svn: 184675
|
|
|
|
|
|
| |
Patch by Ismail Pazarbasi!
llvm-svn: 184650
|
|
|
|
|
|
|
|
|
|
|
|
| |
The problem with r183462 was that we assumed that a diagnostic id of
zero would be silent.
This small correction to CheckDerivedToBaseConversion changes it's
behavior to omit the diagnostic when given a diagnostic id of zero.
This fix passes the test case added in r184402.
llvm-svn: 184631
|
|
|
|
| |
llvm-svn: 184629
|
|
|
|
|
|
| |
types and function pointer arrays.
llvm-svn: 184616
|
|
|
|
|
|
| |
Reviewed by Richard Smith.
llvm-svn: 184612
|
|
|
|
|
|
| |
Fixes PR16292.
llvm-svn: 184581
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Itanium destroys them in the caller at the end of the full expression,
but MSVC destroys them in the callee. This is further complicated by
the need to emit EH-only destructor cleanups in the caller.
This should help clang compile MSVC's debug iterators more correctly.
There is still an outstanding issue in PR5064 of a memcpy emitted by the
LLVM backend, which is not correct for C++ records.
Fixes PR16226.
Reviewers: rjmccall
Differential Revision: http://llvm-reviews.chandlerc.com/D929
llvm-svn: 184543
|
|
|
|
| |
llvm-svn: 184520
|
|
|
|
| |
llvm-svn: 184517
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As an optimization, we only kept declared methods with distinct
signatures in the global method pool, to keep the method lists
small. Under modules, however, one could have two different methods
with the same signature that occur in different (sub)modules. If only
the later submodule is important, message sends to 'id' with that
selector would fail because the first method (the only one that got
into the method pool) was hidden. When building a module, keep *all*
of the declared methods.
I did a quick check of both module build time and uses of modules, and
found no performance regression despite this causing us to keep more
methods in the global method pool. Fixes <rdar://problem/14148896>.
llvm-svn: 184504
|
|
|
|
| |
llvm-svn: 184496
|
|
|
|
| |
llvm-svn: 184493
|
|
|
|
|
|
|
| |
operations in the case where evaluating a subexpression fails. No functionality
change, but test/Sema/many-logical-ops.c gets ~100x faster with this change.
llvm-svn: 184489
|
|
|
|
|
|
| |
This is needed to parse libstdc++ 4.7's type_traits, see PR13530.
llvm-svn: 184476
|
|
|
|
| |
llvm-svn: 184470
|
|
|
|
| |
llvm-svn: 184466
|
|
|
|
| |
llvm-svn: 184453
|
|
|
|
| |
llvm-svn: 184417
|
|
|
|
|
|
| |
This fixes PR16370, I'll add the test case in a follow-up commit.
llvm-svn: 184401
|
|
|
|
|
|
|
|
|
| |
up alignment.
Fixes utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp from the
libc++ testsuite.
llvm-svn: 184397
|
|
|
|
|
|
|
|
|
|
| |
return false;
in a function returning a pointer. 'false' was a null pointer constant in C++98
but is not in C++11. Punch a very small hole in the initialization rules in
C++11 mode to allow this specific case in system headers.
llvm-svn: 184395
|
|
|
|
| |
llvm-svn: 184379
|
|
|
|
| |
llvm-svn: 184378
|
|
|
|
| |
llvm-svn: 184332
|
|
|
|
|
|
|
|
| |
This fixes an issue when parsing atlbase.h.
Patch by Will Wilson!
llvm-svn: 184319
|
|
|
|
|
|
|
|
|
|
|
| |
We now reject things like
struct ABC {
static double a;
};
register double ABC::a = 1.0;
llvm-svn: 184300
|
|
|
|
| |
llvm-svn: 184299
|
|
|
|
| |
llvm-svn: 184277
|
|
|
|
|
|
|
|
|
|
|
|
| |
to provide proper overloading, and also prevents mangling conflicts with
template arguments of protocol-qualified type.
This is a non-backward-compatible mangling change, but per discussion with
John, the benefits outweigh this cost.
Fixes <rdar://problem/14074822>.
llvm-svn: 184250
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
name, change the class name to the "real" one.
If we have something like
@class NewImage;
@compatibility_alias OldImage NewImage;
@class OldImage;
the lookup for 'OldImage' will return the 'NewImage' decl ("@class NewImage").
In such a case, when creating the decl for "@class OldImage" use the real declaration name ("NewImage"),
instead of the alias one ("OldImage"), otherwise we will break IdentifierResolver and redecls-chain invariants.
Fixes crash of rdar://14112291.
llvm-svn: 184238
|
|
|
|
|
|
|
| |
namespaces, by treating them just like we treat extern "C" declarations in
function scope.
llvm-svn: 184223
|
|
|
|
|
|
| |
whether to emit a -Wformat-security warning. <rdar://problem/14178260>.
llvm-svn: 184214
|
|
|
|
|
|
|
| |
selector would be correted to identical selector name
in certain corner cases. // rdar://7853549
llvm-svn: 184208
|
|
|
|
|
|
|
|
| |
in addition of receiver having static type, but also when
receiver has dynamic type (of 'id' variety) as well as when
receiver is of 'Class' type vareity. // rdar://7853549
llvm-svn: 184195
|
|
|
|
| |
llvm-svn: 184167
|
|
|
|
| |
llvm-svn: 184165
|
|
|
|
| |
llvm-svn: 184154
|
|
|
|
|
|
|
|
|
| |
This reverts commit r184100.
It was faling on some bots:
http://bb.pgr.jp/builders/cmake-clang-i686-mingw32/builds/1973/steps/test_clang/logs/Clang%20%3A%3A%20SemaCXX__cxx1y-contextual-conversion-tweaks.cpp
llvm-svn: 184108
|
|
|
|
| |
llvm-svn: 184100
|
|
|
|
|
|
|
|
|
| |
Make use of getTypeSizeInChars to detect structs/unions of zero size. It allows
more accurate detection of types of zero size. It however has a side effect -
sequence of used types may change, that is why the test 'override-layout' was
modified.
llvm-svn: 184088
|
|
|
|
|
|
| |
is sent to a receiver object. This is wip. // rdar://7853549
llvm-svn: 184086
|
|
|
|
|
|
| |
an asm label.
llvm-svn: 184069
|
|
|
|
|
|
| |
Patch by Robert Wilhelm.
llvm-svn: 184052
|
|
|
|
|
|
| |
previously overlooked part: implicitly converting array sizes to size_t, rather than contextually converting them to some unique type.
llvm-svn: 184048
|