Hi Paul, > 2019-05-09 Paul Eggert <[email protected]> > > + verify: remove verify_true > + * NEWS: Mention this. > + * lib/verify.h (verify_true): Remove. > + * tests/test-verify.c (item): Test verify_expr, not verify_true. > +
As a consequence of this change, the test-verify.c file does not compile any more on AIX 7.1 with xlc: xlc: 1501-230 (S) Internal compiler error; please contact your Service Representative. For more information visit: http://www.ibm.com/support/docview.wss?uid=swg21110810 The machine is gcc111.fsffrance.org. The compiler version is IBM XL C for AIX, V12.1 (5765-J01, 5725-C71) Copyright IBM Corp. 1991, 2012 and by others. All Rights Reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. ----------------------------------------- Version: 12.01.0000.0000 Version: 12.01.0000.0000 Driver 120315 120321 Compiler Services 120315 120203 Date: Wed Mar 21 21:39:51 EDT 2012 ----------------------------------------- The following compiles fine: enum { item = verify_true (1 == 1) * 0 + 17 /* should be ok */ }; int item1 = verify_expr (1 == 1, 10) * 0 + 17; const int item2 = verify_expr (1 == 1, 10) * 0 + 17; But the following does not: enum { item = verify_expr (1 == 1, 10) * 0 + 17 /* should be ok */ }; So, it's apparently the use of verify_expr in an enum value. We had a similar bug with HP-UX cc in the past. Do you see other options than (a) reintroduce verify_true and check that it's usable in enum. (b) relax the check and only check that it's usable as a static initializer. ? Bruno
