| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
existing tests still pass, but there may still be corner cases.
llvm-svn: 151716
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The bug that was caught by Apple's internal buildbots was valid and also showed another bug in my implementation.
These are now fixed, with regression tests added to catch them both (not Darwin-specific).
Original log:
====================
Revert r151638 because it causes assertion hit on PCH creation for Cocoa.h
Original log:
---------------------
Correctly track tags and enum members defined in the prototype of a function, and ensure they are properly scoped.
This fixes code such as:
enum e {x, y};
int f(enum {y, x} n) {
return 0;
}
This finally fixes PR5464 and PR5477.
---------------------
I also reverted r151641 which was enhancement on top of r151638.
====================
llvm-svn: 151712
|
| |
|
|
|
|
| |
are sometimes potentially evaluated.
llvm-svn: 151707
|
| |
|
|
| |
llvm-svn: 151699
|
| |
|
|
|
|
|
|
| |
of the SmallPtrSet way up to avoid commonly reallocating the buffer size.
- I didn't see a good argument against it, so I bumped the limit to cover the
max size we see during parsing Cocoa.h.
llvm-svn: 151698
|
| |
|
|
|
|
| |
conversions. PR12121.
llvm-svn: 151674
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Original log:
---------------------
Correctly track tags and enum members defined in the prototype of a function, and ensure they are properly scoped.
This fixes code such as:
enum e {x, y};
int f(enum {y, x} n) {
return 0;
}
This finally fixes PR5464 and PR5477.
---------------------
I also reverted r151641 which was enhancement on top of r151638.
llvm-svn: 151667
|
| |
|
|
|
|
| |
list-initializations. Fixes PR12118.
llvm-svn: 151666
|
| |
|
|
|
|
| |
name change went horribly wrong and I forgot to retest afterwards.
llvm-svn: 151641
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
function, and ensure they are properly scoped.
This fixes code such as:
enum e {x, y};
int f(enum {y, x} n) {
return 0;
}
This finally fixes PR5464 and PR5477.
llvm-svn: 151638
|
| |
|
|
|
|
|
|
|
|
| |
make sure to record the source location of the ivar name.
[libclang] When indexing @synthesized objc methods, report the @implementation
as the lexical container.
Fixes rdar://10905472
llvm-svn: 151635
|
| |
|
|
|
|
|
|
|
|
| |
extension.
[libclang] Index the getter/setter methods of a property of a objc class extension.
Fixes rdar://10907597
llvm-svn: 151633
|
| |
|
|
|
|
| |
mention the actual method. This looks better within an IDE, where text isn't always regurgitated in the presentation of a warning. Fixes radar 10914035.
llvm-svn: 151579
|
| |
|
|
| |
llvm-svn: 151577
|
| |
|
|
|
|
| |
checking. Specifically, make sure we don't ignore explicit casts in indexes, and make sure we use unsigned extension/comparisons on indexes. Fixes <rdar://problem/10916006>.
llvm-svn: 151569
|
| |
|
|
|
|
| |
assignment of init lists to built-in types and resolves PR12088.
llvm-svn: 151551
|
| |
|
|
|
|
|
| |
default constructor of a union if it has a const member with no user-provided
default constructor.
llvm-svn: 151516
|
| |
|
|
|
|
| |
non-trivial.
llvm-svn: 151486
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- variant members with nontrivial destructors make the containing class's
destructor deleted
- check for a virtual destructor after checking for overridden methods in the
base class(es)
- check for an inaccessible operator delete for a class with a virtual
destructor.
Do not try to call an anonymous union field's destructor from the destructor of
the containing class.
llvm-svn: 151483
|
| |
|
|
| |
llvm-svn: 151478
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
trivial if the implicit declaration would be. Don't forget to set the Trivial
flag on the special member as well as on the class. It doesn't seem ideal that
we have two separate mechanisms for storing this information, but this patch
does not attempt to address that.
This leaves us in an interesting position where the has_trivial_X trait for a
class says 'yes' for a deleted but trivial X, but is_trivially_Xable says 'no'.
This seems to be what the standard requires.
llvm-svn: 151465
|
| |
|
|
| |
llvm-svn: 151447
|
| |
|
|
|
|
| |
likewise for __has_extension). Patch by Jonathan Sauer!
llvm-svn: 151445
|
| |
|
|
|
|
|
| |
in cases where we would otherwise disallow the access, and add a -Wc++98-compat
diagnostic for this C++11 feature.
llvm-svn: 151444
|
| |
|
|
|
|
| |
unevaluated operands applies within member functions, too.
llvm-svn: 151443
|
| |
|
|
| |
llvm-svn: 151442
|
| |
|
|
|
|
|
|
| |
associated classes, since it can find friend functions declared within them,
but overload resolution does not otherwise require argument types to be
complete.
llvm-svn: 151434
|
| |
|
|
|
|
| |
implement the retain+autorelease outside of ARC, and there's a bug that causes the generated code to crash in ARC (which I think is unrelated to my code, although I'm not completely sure).
llvm-svn: 151428
|
| |
|
|
|
|
| |
type and void* is used. <rdar://problem/10486347>.
llvm-svn: 151416
|
| |
|
|
|
|
|
| |
when a class is forward declared, and the reference to the data
member in question does not occur within a method body.
llvm-svn: 151413
|
| |
|
|
|
|
|
|
|
|
|
| |
explicit conversion functions to initialize the argument to a
copy/move constructor that itself is the subject of direct
initialization. Since we don't have that much context in overload
resolution, we end up threading more flags :(.
Fixes <rdar://problem/10903741> / PR10456.
llvm-svn: 151409
|
| |
|
|
| |
llvm-svn: 151400
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A defaulted default constructor for a class X is defined as deleted if [...]
- X is a union and all of its variant members are of const-qualified type.
A pedantic reading therefore says that
union X { };
has a deleted default constructor, which is both silly and almost
certainly unintended. Pretend as if this this read
- X is a union with one or more variant members, and all of its
variant members are of const-qualified type.
llvm-svn: 151394
|
| |
|
|
| |
llvm-svn: 151389
|
| |
|
|
| |
llvm-svn: 151377
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Make sure that the block expression is instantiation-dependent if the
block is in a dependent context
- Make sure that the C++ 'this' expression gets captured even if we
don't rebuild the AST node during template instantiation. This would
also have manifested as a bug for lambdas.
Fixes <rdar://problem/10832617>.
llvm-svn: 151372
|
| |
|
|
| |
llvm-svn: 151356
|
| |
|
|
| |
llvm-svn: 151353
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that provides the behavior of the C++11 library trait
std::is_trivially_constructible<T, Args...>, which can't be
implemented purely as a library.
Since __is_trivially_constructible can have zero or more arguments, I
needed to add Yet Another Type Trait Expression Class, this one
handling arbitrary arguments. The next step will be to migrate
UnaryTypeTrait and BinaryTypeTrait over to this new, more general
TypeTrait class.
Fixes the Clang side of <rdar://problem/10895483> / PR12038.
llvm-svn: 151352
|
| |
|
|
|
|
| |
functional change.
llvm-svn: 151298
|
| |
|
|
|
|
| |
// rdar://10907410
llvm-svn: 151296
|
| |
|
|
|
|
| |
MS compatibility mode.
llvm-svn: 151295
|
| |
|
|
|
|
| |
that we can correctly compute value-dependence of the OVE.
llvm-svn: 151291
|
| |
|
|
|
|
|
|
| |
marked as such.
Previously we missed tag declarations; fixes rdar://10902015
llvm-svn: 151283
|
| |
|
|
|
|
|
| |
must still auto synthesize those propeties which have been redeclared
in the class. // rdar://10907410
llvm-svn: 151268
|
| |
|
|
|
|
| |
optimization, the current implementation is also a denser.
llvm-svn: 151257
|
| |
|
|
|
|
| |
malloc thrashing.
llvm-svn: 151254
|
| |
|
|
|
|
|
| |
compiler support for the std::is_trivially_assignable library type
trait.
llvm-svn: 151240
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Handle some situations where we should never make a decl more visible,
even when merging in an explicit visibility.
* Handle attributes in members of classes that are explicitly specialized.
Thanks Nico for the report and testing, Eric for the initial review, and dgregor
for the awesome test27 :-)
llvm-svn: 151236
|
| |
|
|
|
|
|
|
| |
<rdar://problem/10907510>, and makes the ASTs a bit more self-consistent.
(I've chosen to keep the qualifiers, but it isn't a strong preference; if anyone prefers removing them, please yell.)
llvm-svn: 151229
|