[cfe-commits] r162846 - in /cfe/trunk: lib/Sema/SemaExpr.cpp test/SemaObjC/idiomatic-parentheses.m

Nico Weber thakis at chromium.org
Wed Dec 19 21:16:16 PST 2012


Thanks, this is useful :-)

On Wed, Aug 29, 2012 at 10:17 AM, Fariborz Jahanian <fjahanian at apple.com>wrote:

> Author: fjahanian
> Date: Wed Aug 29 12:17:11 2012
> New Revision: 162846
>
> URL: http://llvm.org/viewvc/llvm-project?rev=162846&view=rev
> Log:
> objective-C: make -Widiomatic-parentheses work
> when assignment expression in conditional invloves
> property reference. // rdar://11066598
>
> Modified:
>     cfe/trunk/lib/Sema/SemaExpr.cpp
>     cfe/trunk/test/SemaObjC/idiomatic-parentheses.m
>
> Modified: cfe/trunk/lib/Sema/SemaExpr.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExpr.cpp?rev=162846&r1=162845&r2=162846&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaExpr.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaExpr.cpp Wed Aug 29 12:17:11 2012
> @@ -11191,7 +11191,9 @@
>
>      IsOrAssign = Op->getOperator() == OO_PipeEqual;
>      Loc = Op->getOperatorLoc();
> -  } else {
> +  } else if (PseudoObjectExpr *POE = dyn_cast<PseudoObjectExpr>(E))
> +    return DiagnoseAssignmentAsCondition(POE->getSyntacticForm());
> +  else {
>      // Not an assignment.
>      return;
>    }
>
> Modified: cfe/trunk/test/SemaObjC/idiomatic-parentheses.m
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/idiomatic-parentheses.m?rev=162846&r1=162845&r2=162846&view=diff
>
> ==============================================================================
> --- cfe/trunk/test/SemaObjC/idiomatic-parentheses.m (original)
> +++ cfe/trunk/test/SemaObjC/idiomatic-parentheses.m Wed Aug 29 12:17:11
> 2012
> @@ -4,13 +4,18 @@
>  // <rdar://problem/7382435>
>
>  @interface Object
> +{
> +  unsigned uid;
> +}
>  - (id) init;
>  - (id) initWithInt: (int) i;
>  - (void) iterate: (id) coll;
>  - (id) nextObject;
> + at property unsigned uid;
>  @end
>
>  @implementation Object
> + at synthesize uid;
>  - (id) init {
>    if (self = [self init]) {
>    }
> @@ -20,6 +25,12 @@
>  - (id) initWithInt: (int) i {
>    if (self = [self initWithInt: i]) {
>    }
> +  // rdar://11066598
> +  if (self.uid = 100) { // expected-warning {{using the result of an
> assignment as a condition without parentheses}} \
> +                        // expected-note {{place parentheses around the
> assignment to silence this warning}} \
> +                        // expected-note {{use '==' to turn this
> assignment into an equality comparison}}
> +        // ...
> +  }
>    return self;
>  }
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20121219/2f46473f/attachment.html>


More information about the cfe-commits mailing list