| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 154597
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
is non-NULL before asking for its name.
llvm-svn: 154593
|
| |
|
|
|
|
|
| |
__weak and __block when rewriting.
// rdar://11236342
llvm-svn: 154592
|
| |
|
|
|
|
| |
PR12532
llvm-svn: 154591
|
| |
|
|
| |
llvm-svn: 154590
|
| |
|
|
| |
llvm-svn: 154589
|
| |
|
|
| |
llvm-svn: 154588
|
| |
|
|
| |
llvm-svn: 154587
|
| |
|
|
|
|
|
|
| |
This fixes two crashes that appeared in case of:
- A load of a non vectorizable type (e.g. float**)
- An instruction that is not vectorizable (e.g. call)
llvm-svn: 154586
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 154583
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
and now they are symbolized a bit differently
llvm-svn: 154581
|
| |
|
|
|
|
| |
integer instructions.
llvm-svn: 154580
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
They reference the PC directly, so things work properly that way.
rdar://11231229
llvm-svn: 154576
|
| |
|
|
|
|
| |
rdar://problem/11031264
llvm-svn: 154573
|
| |
|
|
|
|
| |
rdar://11079003
llvm-svn: 154571
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
libclang to accurately
get the diagnostic category name from a serialized diagnostic when the version of libclang used
to read the diagnostic file is newer than the clang that emitted the diagnostic file.
llvm-svn: 154567
|
| |
|
|
|
|
| |
of a __block struct object. // rdar://11230308
llvm-svn: 154566
|
| |
|
|
|
|
| |
from a constant string. Given that gcc doesn't accept this, we should continue to not accept it, even though it was accidentally supported by clang for a brief period.
llvm-svn: 154564
|
| |
|
|
| |
llvm-svn: 154563
|
| |
|
|
| |
llvm-svn: 154547
|
| |
|
|
|
|
| |
otherwise expand FNEG during legalization.
llvm-svn: 154546
|
| |
|
|
|
|
| |
Invalid operation is signaled if the operand of these instructions is NaN.
llvm-svn: 154545
|
| |
|
|
|
|
| |
of a VST instruction.
llvm-svn: 154544
|
| |
|
|
| |
llvm-svn: 154543
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
symbolic regions would help.
Thanks to Richard Smith.
llvm-svn: 154541
|
| |
|
|
|
|
|
|
|
|
| |
- FCOPYSIGN nodes that have operands of different types were not handled.
- Different code was generated depending on the endianness of the target.
Additionally, code is added that emits INS and EXT instructions, if they are
supported by target (they are R2 instructions).
llvm-svn: 154540
|
| |
|
|
|
|
|
| |
Objective-C class doesn't have a definition but
Clang tries to read through its protocols anyway.
llvm-svn: 154538
|
| |
|
|
| |
llvm-svn: 154535
|
| |
|
|
|
|
|
| |
first ivar in the list is a bitfield.
// rdar://11229770
llvm-svn: 154534
|
| |
|
|
| |
llvm-svn: 154533
|
| |
|
|
| |
llvm-svn: 154532
|
| |
|
|
| |
llvm-svn: 154531
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 154527
|
| |
|
|
| |
llvm-svn: 154526
|
| |
|
|
| |
llvm-svn: 154525
|
| |
|
|
|
|
|
|
|
|
|
| |
to get at the parameters (and their types) of a function or objc method cursor.
int clang_Cursor_getNumArguments(CXCursor C);
CXCursor clang_Cursor_getArgument(CXCursor C, unsigned i);
rdar://11201527
llvm-svn: 154523
|
| |
|
|
| |
llvm-svn: 154522
|
| |
|
|
|
|
|
|
|
|
| |
Per discussion with Howard, we are not interested in maintaining
compatibility with older versions of clang.
All tests pass with ToT clang, except for two which assert due to
a pre-existing, unrelated bug.
llvm-svn: 154521
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
block. Using this on the lldb/test/lang/objc/foundation test we can see this in action:
First we can load the module:
(lldb) command script import /Volumes/work/gclayton/Documents/src/lldb/examples/darwin/heap_find/heap.py
Loading "/Volumes/work/gclayton/Documents/src/lldb/examples/darwin/heap_find/libheap.dylib"...ok
Image 0 loaded.
"heap_ptr_refs" and "heap_cstr_refs" commands have been installed, use the "--help" options on these commands for detailed help.
Lets take a look at the variable "my":
(lldb) fr var *my
(MyString) *my = {
MyBase = {
NSObject = {
isa = MyString
}
propertyMovesThings = 0
}
str = 0x0000000100301a60
date = 0x0000000100301e60
_desc_pauses = NO
}
We can see that this contains an ivar "str" which has a pointer value of "0x0000000100301a60". Lets search the heap for this pointer and see what we find:
(lldb) heap_ptr_refs 0x0000000100301a60
found pointer 0x0000000100301a60: block = 0x103800270, size = 384, offset = 168, type = 'void *'
found pointer 0x0000000100301a60: block = 0x100301cf0, size = 48, offset = 16, type = 'MyString *', ivar = 'str'
(MyString) *addr = {
MyBase = {
NSObject = {
isa = MyString
}
propertyMovesThings = 0
}
str = 0x0000000100301a60
date = 0x0000000100301e60
_desc_pauses = NO
}
found pointer 0x0000000100301a60: block = 0x100820000, size = 4096, offset = 96, type = (autorelease object pool)
found pointer 0x0000000100301a60: block = 0x100820000, size = 4096, offset = 104, type = (autorelease object pool)
Note that it used dynamic type info to find that it was in "MyString" at offset 16 and it also found the ivar "str"!
We can also look for C string values on the heap. Lets look for "a.out":
(lldb) heap_cstr_refs "a.out"
found cstr a.out: block = 0x10010ce00, size = 96, offset = 85, type = '__NSCFString *'
found cstr a.out: block = 0x100112d90, size = 80, offset = 68, type = 'void *'
found cstr a.out: block = 0x100114490, size = 96, offset = 85, type = '__NSCFString *'
found cstr a.out: block = 0x100114530, size = 112, offset = 97, type = '__NSCFString *'
found cstr a.out: block = 0x100114e40, size = 32, offset = 17, type = '__NSCFString *'
found cstr a.out: block = 0x100114fa0, size = 32, offset = 17, type = '__NSCFString *'
found cstr a.out: block = 0x100300780, size = 160, offset = 128, type = '__NSCFData *'
found cstr a.out: block = 0x100301a60, size = 112, offset = 97, type = '__NSCFString *'
found cstr a.out: block = 0x100821000, size = 4096, offset = 100, type = 'void *'
We see we have some objective C classes that contain this, so lets "po" all of the results by adding the --po option:
(lldb) heap_cstr_refs a.out --po
found cstr a.out: block = 0x10010ce00, size = 96, offset = 85, type = '__NSCFString *'
(__NSCFString *) 0x10010ce00 /Volumes/work/gclayton/Documents/src/lldb/test/lang/objc/foundation/a.out
found cstr a.out: block = 0x100112d90, size = 80, offset = 68, type = 'void *'
found cstr a.out: block = 0x100114490, size = 96, offset = 85, type = '__NSCFString *'
(__NSCFString *) 0x100114490 /Volumes/work/gclayton/Documents/src/lldb/test/lang/objc/foundation/a.out
found cstr a.out: block = 0x100114530, size = 112, offset = 97, type = '__NSCFString *'
(__NSCFString *) 0x100114530 Hello from '/Volumes/work/gclayton/Documents/src/lldb/test/lang/objc/foundation/a.out'
found cstr a.out: block = 0x100114e40, size = 32, offset = 17, type = '__NSCFString *'
(__NSCFString *) 0x100114e40 a.out.dSYM
found cstr a.out: block = 0x100114fa0, size = 32, offset = 17, type = '__NSCFString *'
(__NSCFString *) 0x100114fa0 a.out
found cstr a.out: block = 0x100300780, size = 160, offset = 128, type = '__NSCFData *'
(__NSCFData *) 0x100300780 <48656c6c 6f206672 6f6d2027 2f566f6c 756d6573 2f776f72 6b2f6763 6c617974 6f6e2f44 6f63756d 656e7473 2f737263 2f6c6c64 622f7465 73742f6c 616e672f 6f626a63 2f666f75 6e646174 696f6e2f 612e6f75 742700>
found cstr a.out: block = 0x100301a60, size = 112, offset = 97, type = '__NSCFString *'
(__NSCFString *) 0x100301a60 Hello from '/Volumes/work/gclayton/Documents/src/lldb/test/lang/objc/foundation/a.out'
found cstr a.out: block = 0x100821000, size = 4096, offset = 100, type = 'void *'
llvm-svn: 154519
|