| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Reading from a weak property, casting the result, and assigning to a
strong pointer should still be considered safe.
llvm-svn: 165629
|
| |
|
|
|
|
|
|
| |
Then, switch users of PropertyIfSetterOrGetter and LookupPropertyDecl
(the latter by name) over to findPropertyDecl. This actually makes
-Wreceiver-is-weak a bit stronger than it was before.
llvm-svn: 165628
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Old algorithm:
1. See if the name looks like a getter or setter.
2. Use the name to look up a property in the current ObjCContainer
and all its protocols.
3. If the current container is an interface, also look in all categories
and superclasses (and superclass categories, and so on).
New algorithm:
1. See if the method is marked as a property accessor. If so, look through
all properties in the current container and find one that has a matching
selector.
2. Find all overrides of the method using ObjCMethodDecl's
getOverriddenMethods. This collects methods in superclasses and protocols
(as well as superclass categories, which isn't really necessary), and
checks if THEY are accessors. This part is not done recursively, since
getOverriddenMethods is already recursive.
This lets us handle getters and setters that do not match the property
names.
llvm-svn: 165627
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This more accurately reflects its use: this flag is set when a method
matches the getter or setter name for a property in the same class,
and does not actually specify whether or not the definition of the method
will be synthesized (either implicitly or explicitly with @synthesize).
This renames the setter and backing field as well, and changes the
(soon-to-be-obsolete?) XML dump format to use 'property_accessor'
instead of 'synthesized'.
llvm-svn: 165626
|
| |
|
|
|
|
|
|
| |
constructor with invalid code.
rdar://12240916
llvm-svn: 165623
|
| |
|
|
|
|
|
|
| |
LLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR.
LLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR=/path/to/llvm-srcroot/tools/clang/tools/extra, by default.
llvm-svn: 165620
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The issue arises when coercing to/from types of different sizes. We need
to be certain that the allocation on either end has sufficient room for
the coerced type. When it doesn't, we need to make room, copy across,
and then proceed. PR11905 handled the case of storing function arguments
back into allocas in the function prolog, this patch handles the case of
setting up the function arguments in a call expression.
This is actually significantly simpler than the fix for PR11905. It ends
up being a trivial change to create a temporary alloca when the source
is too small and memcpy across. This should preserve the compile-time
fast-isel benefits of doing gep+load sequences and avoiding FCAs.
Reviewed by Benjamin and Evgeniy (who fixed PR11905).
llvm-svn: 165615
|
| |
|
|
|
|
|
| |
namespace. Use the attribute's enum value instead. No functionality change
intended.
llvm-svn: 165611
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
AAPCS ABI Section 7.1.4 [1] specifies that va_list
should be defined as struct __va_list { void *__ap;};
And in C++, it is defined in namespace std.
[1] http://infocenter.arm.com/help/topic
/com.arm.doc.ihi0042d/IHI0042D_aapcs.pdf
Patch by Weiming Zhao.
llvm-svn: 165609
|
| |
|
|
| |
llvm-svn: 165600
|
| |
|
|
|
|
| |
attribute object and add it appropriately. No functionality change.
llvm-svn: 165596
|
| |
|
|
|
|
| |
and modules are not enabled.
llvm-svn: 165593
|
| |
|
|
|
|
|
| |
an invalid location if the location points to the synthetic buffer
for the module input.
llvm-svn: 165592
|
| |
|
|
|
|
| |
This means the main file for modules will always be a virtual one.
llvm-svn: 165591
|
| |
|
|
| |
llvm-svn: 165584
|
| |
|
|
|
|
| |
non-positive value.
llvm-svn: 165583
|
| |
|
|
| |
llvm-svn: 165581
|
| |
|
|
|
|
| |
This reverts commit 165429 in an attempt to get our buildbots going.
llvm-svn: 165573
|
| |
|
|
|
|
| |
type descriptor. 5% binary size reduction due to fewer relocations.
llvm-svn: 165572
|
| |
|
|
| |
llvm-svn: 165570
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MacroInfo*. Instead of simply dumping an offset into the current file,
give each macro definition a proper ID with all of the standard
modules-remapping facilities. Additionally, when a macro is modified
in a subsequent AST file (e.g., #undef'ing a macro loaded from another
module or from a precompiled header), provide a macro update record
rather than rewriting the entire macro definition. This gives us
greater consistency with the way we handle declarations, and ties
together macro definitions much more cleanly.
Note that we're still not actually deserializing macro history (we
never were), but it's far easy to do properly now.
llvm-svn: 165560
|
| |
|
|
|
|
|
| |
I think our general framework for parser pragmas needs a bit more work,
but I'm not planning on working on it at the moment.
llvm-svn: 165558
|
| |
|
|
|
|
| |
Found by valgrind.
llvm-svn: 165546
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
clang itself. This dates back to clang's early days and while it looks like
some of it is still used (for kext for example), other parts are probably dead.
Remove the -ccc-clang-archs option and associated code. I don't think there
is any remaining setup where clang doesn't support an architecture but it can
expect an working gcc cross compiler to be available.
A nice side effect is that tests no longer need to differentiate architectures
that are included in production builds of clang and those that are not.
llvm-svn: 165545
|
| |
|
|
| |
llvm-svn: 165538
|
| |
|
|
|
|
|
|
| |
(r165531, 165532) and I
(r165534), but leave the test case in place.
llvm-svn: 165537
|
| |
|
|
|
|
| |
of the checks fails.
llvm-svn: 165536
|
| |
|
|
|
|
|
| |
options when clang invokes cc1plus for i386 kexts.
rdar://12459188
llvm-svn: 165534
|
| |
|
|
| |
llvm-svn: 165532
|
| |
|
|
| |
llvm-svn: 165531
|
| |
|
|
| |
llvm-svn: 165521
|
| |
|
|
|
|
|
|
| |
ASTContext to the ObjCMethodDecl, and have the more generic
ASTContext::getOverriddenMethods() use the ObjCMethodDecl::getOverriddenMethods()
function.
llvm-svn: 165518
|
| |
|
|
|
|
| |
deterministic.
llvm-svn: 165515
|
| |
|
|
|
|
|
|
|
|
| |
whether that function/method already has a body (loaded from some
other AST file), as introduced in r165137. Delay this check until
after the redeclaration chains have been wired up.
While I'm here, make the loading of method bodies lazy.
llvm-svn: 165513
|
| |
|
|
|
|
| |
only if just-built clang can build simple 32-bit executables
llvm-svn: 165503
|
| |
|
|
|
|
|
|
|
|
|
|
| |
write out the macro history for that macro. Similarly, we need to cope
with reading a macro definition that has been #undef'd.
Take advantage of this new ability so that global code-completion
results can refer to #undef'd macros, rather than losing them
entirely. For multiply defined/#undef'd macros, we will still get the
wrong result, but it's better than getting no result.
llvm-svn: 165502
|
| |
|
|
|
|
| |
OverloadCandidateSet::clear and don't do it on destruction.
llvm-svn: 165501
|
| |
|
|
|
|
| |
opaque layer is responsible for knowing where that specific attribute is stored.
llvm-svn: 165489
|
| |
|
|
|
|
| |
Patch by: Laszlo Nagy
llvm-svn: 165486
|
| |
|
|
|
|
| |
ASTContext so that it can be widely available.
llvm-svn: 165473
|
| |
|
|
|
|
| |
canonical method; avoid storing them again for an out-of-line definition.
llvm-svn: 165472
|
| |
|
|
|
|
| |
contexts. <rdar://problem/12453134>
llvm-svn: 165462
|
| |
|
|
| |
llvm-svn: 165459
|
| |
|
|
|
|
|
|
|
|
| |
of the initializer is valid before using it.
Fixes rdar://12455002&12449015 where local variables of objc objects in ARC mode
were not annotated because of the ImplicitValueInitExpr initializer having invalid
source range, resulting in the SourceRange of the VarDecl having invalid end location.
llvm-svn: 165456
|
| |
|
|
|
|
| |
seems to have intended.
llvm-svn: 165440
|
| |
|
|
|
|
| |
functionality changed.
llvm-svn: 165439
|
| |
|
|
|
|
|
|
|
| |
With this patch Bitrig can use a different c++ library without pain and
within the normal commandline parameters.
Original patch by David Hill, with lots of fixes and cleanup by me.
llvm-svn: 165430
|
| |
|
|
| |
llvm-svn: 165429
|
| |
|
|
| |
llvm-svn: 165425
|
| |
|
|
|
|
| |
considered absolute on all platforms.
llvm-svn: 165422
|