| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 164254
|
|
|
|
| |
llvm-svn: 164253
|
|
|
|
| |
llvm-svn: 164252
|
|
|
|
|
|
|
|
|
|
|
| |
Make clang emit a flag for DW_AT_object_pointer for the artificial
args where it should (implicit first arguments). FileCheck-ize a
test as well and update tests to take into account the object
pointer flag.
rdar://9797999
llvm-svn: 163755
|
|
|
|
|
|
| |
this should be done on the subprogram, not the variable.
llvm-svn: 163733
|
|
|
|
|
|
|
|
|
|
| |
args where it should (implicit first arguments). FileCheck-ize a
test as well and update tests to take into account the object
pointer flag.
rdar://9797999
llvm-svn: 163668
|
|
|
|
| |
llvm-svn: 163586
|
|
|
|
|
|
|
|
|
| |
that the types aren't artificial the args are, but this is currently
represented by an artificial type.)
Found by inspection.
llvm-svn: 163585
|
|
|
|
| |
llvm-svn: 163325
|
|
|
|
| |
llvm-svn: 163032
|
|
|
|
|
|
| |
instead of aliasing to "struct" which had some incorrect behaviour. Patch by David Robins.
llvm-svn: 163013
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Author: Eric Christopher <echristo@apple.com>
Date: Thu Aug 16 23:50:46 2012 +0000
Add some caching here for the builtin types.
rdar://12117935
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162066 91177308-0d34-0410-b5e6-96231b3b80d8
after fixing a thinko.
llvm-svn: 162243
|
|
|
|
|
|
|
|
| |
Make isa part of objc_object at metadata generation time.
Noticed on inspection.
llvm-svn: 162145
|
|
|
|
|
|
| |
bots back.
llvm-svn: 162080
|
|
|
|
|
|
|
|
| |
reference, so &* on an empty WeakVH binds a reference to a dereferenced null
pointer. So don't do that; we have a perfectly good implicit conversion to
Value*.
llvm-svn: 162079
|
|
|
|
|
|
| |
rdar://12117935
llvm-svn: 162066
|
|
|
|
|
|
| |
Noticed on inspection.
llvm-svn: 162062
|
|
|
|
| |
llvm-svn: 161744
|
|
|
|
|
|
|
|
| |
just let the alignment be zero.
PR13531
llvm-svn: 161379
|
|
|
|
| |
llvm-svn: 161369
|
|
|
|
|
|
|
|
| |
that we attach the lost qualifiers.
Fixes rdar://11882155
llvm-svn: 161368
|
|
|
|
| |
llvm-svn: 161303
|
|
|
|
| |
llvm-svn: 161287
|
|
|
|
| |
llvm-svn: 161286
|
|
|
|
| |
llvm-svn: 160049
|
|
|
|
|
|
|
|
|
|
| |
there's something going on there. Remove the unconditional line entry
and only add one if we're emitting cleanups (any other statements
would be handled normally).
Fixes rdar://9199234
llvm-svn: 160033
|
|
|
|
|
|
|
|
| |
instead.
No functionality change.
llvm-svn: 159719
|
|
|
|
| |
llvm-svn: 159321
|
|
|
|
|
|
|
|
|
|
|
|
| |
EnumConstantDecl.
CreateEnumType doesn't participate in caching so the descriptor for the enum
gets recomputed for every reference of an element of an enum, only to get
discarded when it gets turned into an MDNode.
No functionality change except performance.
llvm-svn: 158832
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
target Objective-C runtime down to the frontend: break this
down into a single target runtime kind and version, and compute
all the relevant information from that. This makes it
relatively painless to add support for new runtimes to the
compiler. Make the new -cc1 flag, -fobjc-runtime=blah-x.y.z,
available at the driver level as a better and more general
alternative to -fgnu-runtime and -fnext-runtime. This new
concept of an Objective-C runtime also encompasses what we
were previously separating out as the "Objective-C ABI", so
fragile vs. non-fragile runtimes are now really modelled as
different kinds of runtime, paving the way for better overall
differentiation.
As a sort of special case, continue to accept the -cc1 flag
-fobjc-runtime-has-weak, as a sop to PLCompatibilityWeak.
I won't go so far as to say "no functionality change", even
ignoring the new driver flag, but subtle changes in driver
semantics are almost certainly not intended.
llvm-svn: 158793
|
|
|
|
| |
llvm-svn: 158353
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While this code is valid C++98, it is not valid C++11. The problem can be
reduced to:
class MDNode;
class DIType {
operator MDNode*() const {return 0;}
};
class WeakVH {
WeakVH(MDNode*) {}
};
int main() {
DIType di;
std::pair<void*, WeakVH> p(std::make_pair((void*)0, di)));
}
This was not detected by any of the bots we have because they either compile
C++98 with libstdc++ (which allows it), or C++11 with libc++ (which incorrectly
allows it). I ran into the problem when compiling with VS 2012 RC.
Thanks to Richard for explaining the issue.
llvm-svn: 158245
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The integral APSInt value is now stored in a decomposed form and the backing
store for large values is allocated via the ASTContext. This way its not
leaked as TemplateArguments are never destructed when they are allocated in
the ASTContext. Since the integral data is immutable it is now shared between
instances, making copying TemplateArguments a trivial operation.
Currently getting the integral data out of a TemplateArgument requires creating
a new APSInt object. This is cheap when the value is small but can be expensive
if it's not. If this turns out to be an issue a more efficient accessor could
be added.
llvm-svn: 158150
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
value_type
In addition, I've made the pointer and reference typedef 'void' rather than T*
just so they can't get misused. I would've omitted them entirely but
std::distance likes them to be there even if it doesn't use them.
This rolls back r155808 and r155869.
Review by Doug Gregor incorporating feedback from Chandler Carruth.
llvm-svn: 158104
|
|
|
|
|
|
|
|
| |
As the failing testcase has been fixed.
This reverts commit 0637f407e6ee7fdccde17fbf9a5fcc4853187b3e.
llvm-svn: 158009
|
|
|
|
|
|
|
| |
This reverts r157970, which was not passing on
clang-x86_64-darwin10-nobootstrap-RA
llvm-svn: 157983
|
|
|
|
|
|
|
|
|
| |
not much reason to emit for constructors and destructors that aren't
user defined.
rdar://11593099
llvm-svn: 157970
|
|
|
|
|
|
| |
Part of rdar://11570854
llvm-svn: 157787
|
|
|
|
|
|
| |
Part of rdar://11496790
llvm-svn: 157304
|
|
|
|
|
|
|
|
|
|
| |
however, the range can be unknown for the upper bound.
Testcase to follow.
Part of rdar://11457152
llvm-svn: 157212
|
|
|
|
|
|
|
|
| |
types and ensure we are actually creating the type.
rdar://11479676
llvm-svn: 157095
|
|
|
|
| |
llvm-svn: 156953
|
|
|
|
|
|
| |
Part of rdar://11352000
llvm-svn: 156407
|
|
|
|
| |
llvm-svn: 156406
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BuiltinType::getNameAsCString
to get a const char* if necessary.
This avoids unnecessary conversions when we want to use the result of getName as
a StringRef.
Part of rdar://10796159
llvm-svn: 156227
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It reduces the amount of emitted debug information:
1) DIEs in .debug_info have types DW_TAG_compile_unit, DW_TAG_subprogram,
DW_TAG_inlined_subroutine (for opt builds) and DW_TAG_lexical_block only.
2) .debug_str contains only function names.
3) No debug data for types/namespaces/variables is emitted.
4) The data in .debug_line is enough to produce valid stack traces with
function names and line numbers.
Reviewed by Eric Christopher.
llvm-svn: 156160
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
filter_decl_iterator had a weird mismatch where both op* and op-> returned T*
making it difficult to generalize this filtering behavior into a reusable
library of any kind.
This change errs on the side of value, making op-> return T* and op* return
T&.
(reviewed by Richard Smith)
llvm-svn: 155808
|
|
|
|
| |
llvm-svn: 155697
|
|
|
|
|
|
|
|
|
| |
find forward declarations in the context that the actual definition
will occur.
rdar://11291658
llvm-svn: 155381
|
|
|
|
| |
llvm-svn: 154678
|