On Mar 7, 2012, at 16:22, Fariborz Jahanian wrote:
> Author: fjahanian
> Date: Wed Mar 7 18:22:50 2012
> New Revision: 152271
>
> URL: http://llvm.org/viewvc/llvm-project?rev=152271&view=rev
> Log:
> improve on diagnostic and provide a fixit hint when
> an uninitialized block variable is being called inside the
> block literal. // rdar://10817031
>
I'm not a fan of the fixit wording... __block doesn't "silence" the warning, it
changes the semantics. Admittedly, the original semantics are wrong and this is
almost certainly the right fix, but it is a real change. How about something
like "maybe you meant to use __block?"
(I don't like that so much either because it doesn't directly say WHY this
fixes the problem, but I don't have a better alternative, and I guess the
warning text does do that already.)
Jordy
> +
> +int main() {
> + void (^arc_fail)() = ^() { // expected-warning {{block pointer variable
> 'arc_fail' is uninitialized when captured by block}} \
> + // expected-note {{consider using a
> '__block' variable 'arc_fail' to silence this warning}}
> + arc_fail(); // BOOM
> + };
> +}
> +// CHECK: {7:12-7:12}:"__block "
>
>
> _______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits