| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 58436
|
|
|
|
| |
llvm-svn: 58432
|
|
|
|
|
|
|
|
| |
Fix PR 2978 false positive for missing release in -dealloc of an ivar retained via a property and then released by assigning nil to that property:
http://llvm.org/bugs/show_bug.cgi?id=2978
llvm-svn: 58431
|
|
|
|
| |
llvm-svn: 58430
|
|
|
|
| |
llvm-svn: 58429
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now this:
@interface Test
{
void (^ivar)(void);
}
- (void)name;
@end
@implementation Test
- (void)name {
ivar = ^{ printf("hello\n"); }; // ((struct Test_IMPL *)self)->ivar = (void (*)(void))&__name_block_impl_0((void *)__name_block_func_0);
ivar(); // ((void (*)(struct __block_impl *))((struct __block_impl *)((struct Test_IMPL *)self)->ivar)->FuncPtr)((struct __block_impl *)((struct Test_IMPL *)self)->ivar);
}
llvm-svn: 58428
|
|
|
|
| |
llvm-svn: 58427
|
|
|
|
| |
llvm-svn: 58422
|
|
|
|
|
|
|
| |
- SetSVal(GRState*, Loc, SVal) => BindLoc
- SetSVal(GRState*, Expr*, SVal) => BindExpr
llvm-svn: 58421
|
|
|
|
| |
llvm-svn: 58420
|
|
|
|
|
|
| |
value.
llvm-svn: 58419
|
|
|
|
| |
llvm-svn: 58418
|
|
|
|
| |
llvm-svn: 58417
|
|
|
|
| |
llvm-svn: 58412
|
|
|
|
| |
llvm-svn: 58410
|
|
|
|
| |
llvm-svn: 58404
|
|
|
|
|
|
|
|
|
|
| |
- That is, the metadata for a protocol is only emitted if that
protocol is actually used in the translation unit. This is
important because Objective-C headers frequently contain a large
number of protocol definitions, only a few of which will be used in
any given file.
llvm-svn: 58400
|
|
|
|
| |
llvm-svn: 58396
|
|
|
|
| |
llvm-svn: 58395
|
|
|
|
| |
llvm-svn: 58394
|
|
|
|
|
|
| |
typeof(another_function) would have FunctionDecl::getNumParams() return the number of parameters in the original function type and not the number of parameters in the actual FunctionDecl.
llvm-svn: 58392
|
|
|
|
| |
llvm-svn: 58390
|
|
|
|
| |
llvm-svn: 58388
|
|
|
|
|
|
|
|
|
|
| |
- Allows definitions of overloaded functions :)
- Eliminates extraneous error messages when we have a definition of a
function that isn't an overload but doesn't have exactly the same type
as the original.
llvm-svn: 58382
|
|
|
|
| |
llvm-svn: 58381
|
|
|
|
|
|
| |
pretty printing.
llvm-svn: 58380
|
|
|
|
|
|
| |
because it depends on linkage-specifier semantics we don't yet have
llvm-svn: 58377
|
|
|
|
|
|
|
|
| |
code generation.
- For now, disable running the always inliner pass (at -O0) if we are
also generating debug information.
llvm-svn: 58376
|
|
|
|
| |
llvm-svn: 58374
|
|
|
|
| |
llvm-svn: 58373
|
|
|
|
| |
llvm-svn: 58369
|
|
|
|
|
|
|
|
| |
- Unfortunately, I don't have an easy way to map from named sections
to numbers nicely so they don't get page numbers or integrate in
the list well.
llvm-svn: 58368
|
|
|
|
|
|
|
|
|
|
|
| |
va_list, not the value. Patch fixes an assert on
x86-64 and a wrong-code bug on x86. I'm not completely sure,
but I think it's a regression from r58306.
Does anyone run regression tests regularly on x86-64? The crash should
have been picked up there.
llvm-svn: 58366
|
|
|
|
|
|
|
|
|
| |
The attached patch adds additional checks to -warn-objc-missing-dealloc. It checks that all ivars which are used in implementation of synthesized properties are either
a) released in dealloc if the property has retain" or "copy" attribute OR
b) not released in dealloc if the property has "assign" attribute
llvm-svn: 58363
|
|
|
|
| |
llvm-svn: 58362
|
|
|
|
|
|
| |
closely.
llvm-svn: 58361
|
|
|
|
|
|
|
|
| |
arguments.
- More important than it looks, this inhibits trivial inlining
otherwise.
llvm-svn: 58360
|
|
|
|
|
|
|
|
| |
BindDecl better describes what the function does:
- Bind the VarDecl to its memory region
- Bind the memory region to some initial value.
llvm-svn: 58359
|
|
|
|
|
|
|
|
|
|
|
| |
ImplicitConversionSequence and, when doing so, following the specific
rules of [over.best.ics].
The computation of the implicit conversion sequences implements C++
[over.ics.ref], but we do not (yet) have ranking for implicit
conversion sequences that use reference binding.
llvm-svn: 58357
|
|
|
|
| |
llvm-svn: 58356
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of copy initialization. Other pieces of the puzzle:
- Try/Perform-ImplicitConversion now handles implicit conversions
that don't involve references.
- Try/Perform-CopyInitialization uses
CheckSingleAssignmentConstraints for C. PerformCopyInitialization
is now used for all argument passing and returning values from a
function.
- Diagnose errors with declaring references and const values without
an initializer. (Uses a new Action callback, ActOnUninitializedDecl).
We do not yet have implicit conversion sequences for reference
binding, which means that we don't have any overloading support for
reference parameters yet.
llvm-svn: 58353
|
|
|
|
| |
llvm-svn: 58349
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this commit, stuff like this is very close to working...
[foo barf:^(int){ printf("whatever\n"); }];
Here is what is currently translates to...
((id (*)(id, SEL, void (^)(int)))(void *)objc_msgSend)((id)foo, sel_registerName("barf:"), (void (*)(int))__main_block_func_0);
I just need make sure the funky cast on objc_msgSend() is converted from "void (^)(int)" to "void (*)(int)". Since the cast doesn't appear in the source code, it needs to be converted in RewriteObjC::SynthMessageExpr().
llvm-svn: 58348
|
|
|
|
|
|
|
|
| |
(1) when all of the bug category boxes are checked, automatically check "All Bugs"
(2) when any of the bug category boxes are unchecked, automatically uncheck "All Bugs"
llvm-svn: 58346
|
|
|
|
|
|
| |
The attached patch adds a checkbox to the scan-build summary report, which toggles all other checkboxes' states.
llvm-svn: 58344
|
|
|
|
|
|
| |
- No functionality change.
llvm-svn: 58342
|
|
|
|
| |
llvm-svn: 58341
|
|
|
|
| |
llvm-svn: 58331
|
|
|
|
| |
llvm-svn: 58330
|
|
|
|
| |
llvm-svn: 58322
|