/* APPLE LOCAL file non lvalue assign */ /* Allow assignments to conditional expressions, as long as the second and third operands are already lvalues. */ /* Author: Ziemowit Laski <zlaski@apple.com> */ /* { dg-options "-fnon-lvalue-assign" } */ /* { dg-do run } */ #include <stdlib.h> int g1 = 3, g2 = 5; void assign_val1 (int which, int value) { (which ? g1 : g2) = value; /* { dg-warning "target of assignment not really an lvalue" } */ } void assign_val2 (int which) { (which ? g1 : g2)++; /* { dg-warning "target of assignment not really an lvalue" } */ } int main(void) { assign_val1 (0, 15); if (g1 != 3 || g2 != 15) abort (); assign_val2 (1); if (g1 != 4 || g2 != 15) abort (); return 0; }