| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- New isDefined() function checks for deletedness
- isThisDeclarationADefinition checks for deletedness
- New doesThisDeclarationHaveABody() does what
isThisDeclarationADefinition() used to do
- The IsDeleted bit is not propagated across redeclarations
- isDeleted() now checks the canoncial declaration
- New isDeletedAsWritten() does what it says on the tin.
- isUserProvided() now correct (thanks Richard!)
This fixes the bug that we weren't catching
void foo() = delete;
void foo() {}
as being a redefinition.
llvm-svn: 131013
|
| |
|
|
|
|
| |
and a lot of downside (like PR9850, which is about clang's xmmintrin.h making an unexpected transformation on an expression involving _mm_add_epi32).
llvm-svn: 131000
|
| |
|
|
|
|
| |
a bit messy, but it is correct as long as the method in question doesn't use indirect gotos. A couple of possible alternative implementations are outlined in FIXME's in this patch. rdar://problem/8077308 .
llvm-svn: 130993
|
| |
|
|
|
|
| |
This enables incremental codegen, where the initializer array can be removed from the module, such that only new initializers will be emitted and run.
llvm-svn: 130986
|
| |
|
|
|
|
| |
// rdar://9362887
llvm-svn: 130956
|
| |
|
|
| |
llvm-svn: 130953
|
| |
|
|
| |
llvm-svn: 130929
|
| |
|
|
|
|
| |
foo.pic.gcno instead of foo.gcno.
llvm-svn: 130899
|
| |
|
|
|
|
|
|
|
|
| |
Ivar offsets for synthesized ivars are wrong, which could end up with a large
number of dirty pages because of ivar fixups at runtime. When we pack all of the
synthesized ivars into the same section, it limits the number of dirty pages
created. Place them in the "__DATA,__objc_ivar" section.
<rdar://problem/9374905>
llvm-svn: 130870
|
| |
|
|
| |
llvm-svn: 130866
|
| |
|
|
| |
llvm-svn: 130864
|
| |
|
|
| |
llvm-svn: 130830
|
| |
|
|
|
|
|
|
|
|
| |
the body of a delegating constructor call.
This means that the delegating constructor implementation should be
complete and correct, though there are some rough edges (diagnostic
quality with the cycle detection and using a deleted destructor).
llvm-svn: 130803
|
| |
|
|
|
|
| |
structs. // rdar://8823265
llvm-svn: 130783
|
| |
|
|
|
|
| |
Material bugfixes to come this afternoon.
llvm-svn: 130782
|
| |
|
|
| |
llvm-svn: 130736
|
| |
|
|
|
|
| |
fix SingleSource/UnitTests/block-copied-in-cxxobj compile time crash.
llvm-svn: 130734
|
| |
|
|
| |
llvm-svn: 130719
|
| |
|
|
|
|
| |
rdar://problem/8139919 . This shouldn't make much of a difference at -O3, but should substantially reduce the number of generated memcpy's at -O0.
llvm-svn: 130717
|
| |
|
|
|
|
| |
eventually gain more members). Working towards modifying call emission to avoid unnecessary copies.
llvm-svn: 130700
|
| |
|
|
|
|
| |
change.
llvm-svn: 130699
|
| |
|
|
| |
llvm-svn: 130696
|
| |
|
|
|
|
|
|
|
| |
Devang, can we remove this call entirely? If I try that, "make check" passes
but the call has a side-effect of ensuring that the block's context exists in
the debug info. getContextDescriptor() is used in a void context for that side-
effect elsewhere in this file. Please take a look!
llvm-svn: 130679
|
| |
|
|
| |
llvm-svn: 130674
|
| |
|
|
|
|
| |
functionality change.
llvm-svn: 130673
|
| |
|
|
|
|
| |
functionality change.
llvm-svn: 130672
|
| |
|
|
|
|
|
|
|
|
| |
As far as I know, this implementation is complete but might be missing a
few optimizations. Exceptions and virtual bases are handled correctly.
Because I'm an optimist, the web page has appropriately been updated. If
I'm wrong, feel free to downgrade its support categories.
llvm-svn: 130642
|
| |
|
|
| |
llvm-svn: 130616
|
| |
|
|
| |
llvm-svn: 130561
|
| |
|
|
|
|
| |
Radar 9333566. Patch by Chad Rosier!
llvm-svn: 130554
|
| |
|
|
| |
llvm-svn: 130550
|
| |
|
|
|
|
|
|
| |
rhs when its 'forwarding' pointer may be modified
in rhs evaluation as result of call to Block_copy.
// rdar://9309454
llvm-svn: 130545
|
| |
|
|
| |
llvm-svn: 130500
|
| |
|
|
|
|
| |
// rdar://8823265
llvm-svn: 130458
|
| |
|
|
|
|
|
| |
-C++ objects with user-declared constructor don't need zero'ing.
-We can zero-initialize arrays of C++ objects in "bulk" now, in which case don't zero-initialize each object again.
llvm-svn: 130453
|
| |
|
|
|
|
| |
// rdar://8823265 - wip.
llvm-svn: 130451
|
| |
|
|
|
|
| |
regression in mason. rdar://problem/7662569
llvm-svn: 130444
|
| |
|
|
| |
llvm-svn: 130427
|
| |
|
|
| |
llvm-svn: 130423
|
| |
|
|
|
|
|
|
|
|
| |
initializer make sure
that a non-trivial C++ constructor gets called.
Fixes rdar://9347552 & http://llvm.org/PR9801
llvm-svn: 130421
|
| |
|
|
|
|
| |
rdar://problem/7662569
llvm-svn: 130417
|
| |
|
|
|
|
|
|
|
|
| |
make sure to mark the destructor. This normally isn't required,
because the destructor should have been marked as part of the
declaration of the local, but it's necessary when the variable
is a parameter because it's the call sites that are responsible
for those destructors.
llvm-svn: 130372
|
| |
|
|
|
|
|
|
| |
Patch authored by Sohail Somani.
Provide parsing and AST support for Windows structured exception handling.
llvm-svn: 130366
|
| |
|
|
|
|
|
|
|
|
| |
Patch authored by John Wiegley.
These are array type traits used for parsing code that employs certain
features of the Embarcadero C++ compiler: __array_rank(T) and
__array_extent(T, Dim).
llvm-svn: 130351
|
| |
|
|
| |
llvm-svn: 130312
|
| |
|
|
|
|
| |
// rdar://8823265 related.
llvm-svn: 130311
|
| |
|
|
|
|
| |
with internal linkage don't have to be i64, i8 works just fine!
llvm-svn: 130286
|
| |
|
|
|
|
| |
non-bitfield members are ignore. // rdar://8823265 wip
llvm-svn: 130257
|
| |
|
|
| |
llvm-svn: 130244
|
| |
|
|
|
|
|
|
|
|
|
| |
bound
member function, i.e. something of the form 'x.f' where 'f' is a non-static
member function. Diagnose this in the general case. Some of the new diagnostics
are probably worse than the old ones, but we now get this right much more
universally, and there's certainly room for improvement in the diagnostics.
llvm-svn: 130239
|