| 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
|
| |
|
|
|
|
| |
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: 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
|
| |
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
| |
and add a test case.
llvm-svn: 154653
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
The mangler doesn't like non-prototyped functions so only use a mangled
name for prototyped functions.
rdar://11079003
llvm-svn: 154570
|
| |
|
|
|
|
| |
so.
llvm-svn: 154569
|
| |
|
|
|
|
| |
of a __block struct object. // rdar://11230308
llvm-svn: 154566
|
| |
|
|
|
|
|
|
| |
As per Jordy's review. Creating a symbol here is more flexible; however
I could not come up with an example where it was needed. (What
constrains can be added on of the symbol constrained to 0?)
llvm-svn: 154542
|
| |
|
|
|
|
|
| |
first ivar in the list is a bitfield.
// rdar://11229770
llvm-svn: 154534
|
| |
|
|
|
|
|
| |
right place to pick up parsing. In C++, this had a tendency to skip everything
declared within headers if the TU starts with garbage.
llvm-svn: 154530
|
| |
|
|
|
|
|
|
|
| |
<stdatomic.h> header.
In passing, fix LanguageExtensions to note that C11 and C++11 are no longer
"upcoming standards" but are now actually standardized.
llvm-svn: 154513
|
| |
|
|
|
|
| |
types.
llvm-svn: 154507
|
| |
|
|
| |
llvm-svn: 154501
|
| |
|
|
| |
llvm-svn: 154499
|
| |
|
|
|
|
|
|
| |
an explicit instance variable.
rdar://10590352
llvm-svn: 154481
|