| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
C function) implementation
will be rejected with a compilation error in ARC mode, and a compiler warning otherwise.
This may cause breakage in non-arc (and arc) tests which don't expect warning/error. Feel free
to fix the tests, or reverse the patch, if I am unavailable. // rdar://9818354 - WIP
llvm-svn: 135740
|
| |
|
|
| |
llvm-svn: 135708
|
| |
|
|
|
|
| |
of -fobjc-arc. rdar://9818341
llvm-svn: 135707
|
| |
|
|
|
|
| |
// rdar://9615045
llvm-svn: 135685
|
| |
|
|
|
|
| |
a warning flag. // rdar://9615045
llvm-svn: 135681
|
| |
|
|
|
|
| |
so that the directory seperator, which may change on different platforms, is no longer part of the string checked for.
llvm-svn: 135665
|
| |
|
|
|
|
| |
-Wsign-compare. Cases that previously warn on this will have a different warning emitted from -Wsign-conversion.
llvm-svn: 135664
|
| |
|
|
|
|
| |
Connor Wakamo!
llvm-svn: 135651
|
| |
|
|
|
|
| |
C++ function call is missing * or & operators on
llvm-svn: 135643
|
| |
|
|
| |
llvm-svn: 135640
|
| |
|
|
|
|
| |
// pr10411
llvm-svn: 135638
|
| |
|
|
|
|
| |
passed by reference.
llvm-svn: 135610
|
| |
|
|
| |
llvm-svn: 135605
|
| |
|
|
|
|
|
|
| |
x86_64-pc-win32-macho is used in conjunction with -no-integrated-as go ahead and
use the Darwin system assembler.
rdar://9785470
llvm-svn: 135604
|
| |
|
|
|
|
|
| |
fails because of lifetime differences of parameter and argument type.
// rdar://9790531
llvm-svn: 135593
|
| |
|
|
| |
llvm-svn: 135591
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
WKView.mm from WebKit
This is something of a hack, the problem is as follows:
1. we instantiate both copied of RetainPtr with the two different argument types
(an id and protocol-qualified id).
2. We refer to the ctor of one of the instantiations when introducing global "x",
this causes us to emit an llvm::Function for a prototype whose "this" has type
"RetainPtr<id<bork> >*".
3. We refer to the ctor of the other instantiation when introducing global "y",
however, because it *mangles to the same name as the other ctor* we just use
a bitcasted version of the llvm::Function we previously emitted.
4. We emit deferred declarations, causing us to emit the body of the ctor, however
the body we emit is for RetainPtr<id>, which expects its 'this' to have an IR
type of "RetainPtr<id>*".
Because of the mangling collision, we don't have this case, and explode.
This is really some sort of weird AST invariant violation or something, but hey
a bitcast makes the pain go away.
llvm-svn: 135572
|
| |
|
|
|
|
|
| |
decaying an array of incomplete type (which has type [0 x i8]*) to a
normal pointer (which has incompletetype*).
llvm-svn: 135565
|
| |
|
|
|
|
| |
arguments.
llvm-svn: 135552
|
| |
|
|
|
|
| |
non-value-dependent cases.
llvm-svn: 135543
|
| |
|
|
|
|
| |
lvalue-to-rvalue conversion in a DeclStmt.
llvm-svn: 135525
|
| |
|
|
|
|
| |
conversion is wrapped in a parenthesis.
llvm-svn: 135519
|
| |
|
|
|
|
| |
pthread and XNU locks. Patch by Rui Paulo!
llvm-svn: 135515
|
| |
|
|
|
|
| |
one/several of it's parameters (addresses http://llvm.org/PR5941).
llvm-svn: 135509
|
| |
|
|
|
|
|
|
|
|
|
| |
pre-migration ARC errors.
-arcmt-migrate-emit-errors : Emits the pre-migration ARC errors but it doesn't affect anything else
-arcmt-migrate-report-output : Writes out the pre-migration ARC errors to the provided plist file
rdar://9791454
llvm-svn: 135491
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
source locations from source locations loaded from an AST/PCH file.
Previously, loading an AST/PCH file involved carefully pre-allocating
space at the beginning of the source manager for the source locations
and FileIDs that correspond to the prefix, and then appending the
source locations/FileIDs used for parsing the remaining translation
unit. This design forced us into loading PCH files early, as a prefix,
whic has become a rather significant limitation.
This patch splits the SourceManager space into two parts: for source
location "addresses", the lower values (growing upward) are used to
describe parsed code, while upper values (growing downward) are used
for source locations loaded from AST/PCH files. Similarly, positive
FileIDs are used to describe parsed code while negative FileIDs are
used to file/macro locations loaded from AST/PCH files. As a result,
we can load PCH/AST files even during parsing, making various
improvemnts in the future possible, e.g., teaching #include <foo.h> to
look for and load <foo.h.gch> if it happens to be already available.
This patch was originally written by Sebastian Redl, then brought
forward to the modern age by Jonathan Turner, and finally
polished/finished by me to be committed.
llvm-svn: 135484
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
crawl.
This is accomplished by forcing the needed expressions for -Wuninitialized to always be CFGElements in the CFG.
This allows us to remove a fair amount of the code for -Wuninitialized.
Some fallout:
- AnalysisBasedWarnings.cpp now specifically toggles the CFGBuilder to create a CFG that is suitable for -Wuninitialized. This
is a layering violation, since the logic for -Wuninitialized is in libAnalysis. This can be fixed with the proper refactoring.
- Some of the source locations for -Wunreachable-code warnings have shifted. While not ideal, this is okay because that analysis
already needs some serious reworking.
llvm-svn: 135480
|
| |
|
|
| |
llvm-svn: 135437
|
| |
|
|
|
|
| |
correctly impelmented
llvm-svn: 135401
|
| |
|
|
|
|
|
|
|
| |
add __attribute__((objc_precise_lifetime)) to make sure that the object
(and its data) will not get released before the var goes out-of-scope.
rdar://9206226
llvm-svn: 135382
|
| |
|
|
|
|
| |
with __unsafe_unretained parameters. Emit error for strong/weak ones. rdar://9206226
llvm-svn: 135381
|
| |
|
|
|
|
| |
neither was inline. Fixes bug introduced in r135377.
llvm-svn: 135380
|
| |
|
|
|
|
| |
Fixes PR10233!
llvm-svn: 135377
|
| |
|
|
|
|
|
|
|
|
|
| |
patch, we actually move the state-machine for the value set backwards
one step. This can pretty easily lead to infinite loops where we
continually try to propagate a bit, succeed for one iteration, but then
back up because we find an uninitialized use.
A reduced test case from PR10379 is included.
llvm-svn: 135359
|
| |
|
|
|
|
| |
to extend to camel case functions instead of just title case functions. Fixes <rdar://problem/9732321>.
llvm-svn: 135350
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
release];" since it's very likely
that, after migration, the object that was passed to 'setDelegate:' will not be properly retained, e.g:
-whatever {
id x = [[MyDoHicky alloc] init];
[someivar setDelegate: x]; // x won't get retained in ARC.
}
-dealloc {
[[someivar delegate] release]; // give migration error here.
}
rdar://8858009
llvm-svn: 135327
|
| |
|
|
|
|
| |
Test cases provided by Anton Lokhmot.
llvm-svn: 135322
|
| |
|
|
| |
llvm-svn: 135317
|
| |
|
|
|
|
| |
terminology ('+0 retain counts') caught by the tests.
llvm-svn: 135310
|
| |
|
|
| |
llvm-svn: 135309
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
id x = ...
@try {
...
} @finally {
[x release];
}
Migrator will drop the release. It's better to change it to "x = 0" in a @finally to avoid leak when exception is thrown.
rdar://9398256
llvm-svn: 135301
|
| |
|
|
| |
llvm-svn: 135300
|
| |
|
|
| |
llvm-svn: 135294
|
| |
|
|
|
|
| |
attributes. Fixes <rdar://problem/9561076>.
llvm-svn: 135273
|
| |
|
|
|
|
|
|
| |
which is required given the current setup for template
argument deduction substitution validation, and add a test
case to make sure we don't break it in the future.
llvm-svn: 135262
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
types. Fore xample, we used to lower:
struct bar { int a; };
struct foo {
void (*FP)(struct bar);
} G;
to:
%struct.foo = type { {}* }
since the function pointer would cause recursive translation of bar and
we didn't know if that would get us into trouble. We are now smart enough
to know that it is fine, so we get this type instead:
%struct.foo = type { void (i32)* }
Codegen still needs to be prepared for uncooperative types at any place,
which is why I let the maximally uncooperative code sit around for awhile to
help shake out the bugs.
llvm-svn: 135244
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
instantiations. Upon instantiation of template, value-dependent parameters are replaced by equivalent literals, so code like:
template<unsigned int A, unsigned int B> struct S {
int foo() {
int x = A && B;
}
}
will not warn on A && B on every instantiation. This will still warn on other cases inside templates, which will be caught on checking the template definition.
llvm-svn: 135222
|
| |
|
|
|
|
| |
-Wuninitialized to avoid cascading warnings. Patch by Kaelyn Uhrain.
llvm-svn: 135217
|
| |
|
|
|
|
| |
errors. rdar://9402555.
llvm-svn: 135213
|
| |
|
|
|
|
|
|
| |
Revert "For C++11, do more checking of initializer lists up-front, enabling some subset of the final functionality. C just leaves the function early. C++98 runs through the same code path, but has no changed functionality either."
This reverts commit ac420c5053d6aa41d59f782caad9e46e5baaf2c2.
llvm-svn: 135210
|