| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
Instead, make it the allocation function's responsibility to add them
to a list and clear it when a top-level decl is finished.
This plugs leakage of TemplateAnnotationIds. DelayedCleanupPool is
ugly and unused, remove it.
llvm-svn: 154743
|
| |
|
|
| |
llvm-svn: 154739
|
| |
|
|
| |
llvm-svn: 154738
|
| |
|
|
|
|
| |
manual deletion.
llvm-svn: 154736
|
| |
|
|
|
|
|
|
|
| |
attached. Since we do not support any attributes which appertain to a statement
(yet), testing of this is necessarily quite minimal.
Patch by Alexander Kornienko!
llvm-svn: 154723
|
| |
|
|
|
|
|
| |
This manual deleting is error-prone, but we can't just put an OwningPtr in a
std::map :(
llvm-svn: 154707
|
| |
|
|
|
|
|
|
| |
jump into these scopes, and the cleanup-entering code sometimes wants
to do some operations first (e.g. a GEP), which can leave us with
unparented IR.
llvm-svn: 154684
|
| |
|
|
|
|
|
| |
__typeof which is a regression by reverting
r154360. // rdar://11233924
llvm-svn: 154679
|
| |
|
|
| |
llvm-svn: 154678
|
| |
|
|
| |
llvm-svn: 154676
|
| |
|
|
| |
llvm-svn: 154675
|
| |
|
|
| |
llvm-svn: 154674
|
| |
|
|
| |
llvm-svn: 154672
|
| |
|
|
|
|
|
|
| |
call to 'super' use __rw_objc_super as type of the
'super' meta-data instead of objc_super.
// rdar://11239894
llvm-svn: 154670
|
| |
|
|
|
|
| |
expressions without their OpaqueValueExprs
llvm-svn: 154669
|
| |
|
|
|
|
| |
out of the tree and use the tooling infrastructure.
llvm-svn: 154668
|
| |
|
|
|
|
| |
rebuilt. Fixes <rdar://problem/11052352>.
llvm-svn: 154667
|
| |
|
|
| |
llvm-svn: 154666
|
| |
|
|
|
|
|
| |
- Handle unions
- Handle C++ classes
llvm-svn: 154664
|
| |
|
|
|
|
| |
GNU __atomic builtins.
llvm-svn: 154659
|
| |
|
|
|
|
| |
in the wrong namespace scope. Patch by Jonathan Sauer!
llvm-svn: 154656
|
| |
|
|
|
|
| |
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120409/056126.html
llvm-svn: 154655
|
| |
|
|
|
|
| |
in -std=gnu++11 mode.
llvm-svn: 154654
|
| |
|
|
|
|
| |
and add a test case.
llvm-svn: 154653
|
| |
|
|
|
|
| |
Thanks to Nico Weber for the suggestion.
llvm-svn: 154648
|
| |
|
|
|
|
|
|
| |
shadow of a block expression with non-trivial destructed cleanups,
we should flag that in the enclosing function, not in the block
that we're about to pop.
llvm-svn: 154646
|
| |
|
|
|
|
|
|
|
| |
implementations, mark the atomics-related parts of the C++11 status page
as done. I've not marked 'Strong Compare and Exchange' done, since although
we implement supporting builtins, we don't yet produce different code for
the weak and strong forms.
llvm-svn: 154644
|
| |
|
|
| |
llvm-svn: 154643
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
__atomic_test_and_set, __atomic_clear, plus a pile of undocumented __GCC_*
predefined macros.
Implement library fallback for __atomic_is_lock_free and
__c11_atomic_is_lock_free, and implement __atomic_always_lock_free.
Contrary to their documentation, GCC's __atomic_fetch_add family don't
multiply the operand by sizeof(T) when operating on a pointer type.
libstdc++ relies on this quirk. Remove this handling for all but the
__c11_atomic_fetch_add and __c11_atomic_fetch_sub builtins.
Contrary to their documentation, __atomic_test_and_set and __atomic_clear
take a first argument of type 'volatile void *', not 'void *' or 'bool *',
and __atomic_is_lock_free and __atomic_always_lock_free have an argument
of type 'const volatile void *', not 'void *'.
With this change, libstdc++4.7's <atomic> passes libc++'s atomic test suite,
except for a couple of libstdc++ bugs and some cases where libc++'s test
suite tests for properties which implementations have latitude to vary.
llvm-svn: 154640
|
| |
|
|
|
|
| |
struct __rw_objc_super; no functionality change.
llvm-svn: 154632
|
| |
|
|
| |
llvm-svn: 154630
|
| |
|
|
|
|
|
|
|
| |
The codepath already only works for source bits > target bits, it's just that
it was testing for the source expr bits to be exactly 64. This meant simple
cases (int i = x_long / 2) were missed & ended up under the general
-Wconversion warning, which a user might not have enabled.
llvm-svn: 154626
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We should not deserialize unused declarations from the PCH file. Achieve
this by storing the top level declarations during parsing
(HandleTopLevelDecl ASTConsumer callback) and analyzing/building a call
graph only for those.
Tested the patch on a sample ObjC file that uses PCH. With the patch,
the analyzes is 17.5% faster and clang consumes 40% less memory.
Got about 10% overall build/analyzes time decrease on a large Objective
C project.
A bit of CallGraph refactoring/cleanup as well..
llvm-svn: 154625
|
| |
|
|
| |
llvm-svn: 154624
|
| |
|
|
|
|
|
| |
when BOOL is not of an intergal type when
boolean literals are used. // rdar://11231426
llvm-svn: 154619
|
| |
|
|
| |
llvm-svn: 154613
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
in general (such an atomic has boolean representation) and
specifically for IR generation of __c11_atomic_init. The latter also
means actually using initialization semantics for this initialization,
rather than just creating a store.
On a related note, make sure we actually put in non-atomic-to-atomic
conversions when performing an implicit conversion sequence. IR
generation is far too kind here, but we still want the ASTs to make
sense.
llvm-svn: 154612
|
| |
|
|
| |
llvm-svn: 154611
|
| |
|
|
| |
llvm-svn: 154608
|
| |
|
|
|
|
| |
enclosing function.
llvm-svn: 154607
|
| |
|
|
|
|
|
| |
Otherwise MipsTargetInfoBase::getDefaultFeatures() might return an invalid
features set with an empty feature name.
llvm-svn: 154606
|
| |
|
|
|
|
|
|
|
|
|
|
| |
types. The second and third conversions in the sequence are based on
the conversion for the underlying type, so that we get sensible
overloading behavior for, e.g., _Atomic(int) vs. _Atomic(float).
As part of this, actually implement the lvalue-to-rvalue conversion
for atomic types. There is probably a pile of code in SemaExpr that
can now be deleted, but I haven't tracked it down yet.
llvm-svn: 154596
|
| |
|
|
|
|
|
| |
that of typedef BOOL if found.
// rdar://11231426
llvm-svn: 154595
|
| |
|
|
|
|
|
| |
__weak and __block when rewriting.
// rdar://11236342
llvm-svn: 154592
|
| |
|
|
|
|
| |
PR12532
llvm-svn: 154591
|
| |
|
|
|
|
|
|
| |
CompilerInstance::setCodeCompletionConsumer instead, in order to change
the SkipFunctionBodies flag accordingly. Also fixed
setCodeCompletionConsumer to take a reset() to null into account.
llvm-svn: 154585
|
| |
|
|
| |
llvm-svn: 154584
|
| |
|
|
|
|
|
| |
turns out that it's actually needed for C++ modules support. Since simplifying
it didn't cause any test failures, I'll add a test for it.
llvm-svn: 154582
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is not quite sufficient for libstdc++'s <atomic>: we still need
__atomic_test_and_set and __atomic_clear, and may need a more complete
__atomic_is_lock_free implementation.
We are also missing an implementation of __atomic_always_lock_free,
__atomic_nand_fetch, and __atomic_fetch_nand, but those aren't needed
for libstdc++.
llvm-svn: 154579
|
| |
|
|
|
|
|
|
| |
FunctionDecl::Create calls as well.
rdar://11079003
llvm-svn: 154578
|