bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 3/3] verify: remove verify_true


From: Bruno Haible
Subject: Re: [PATCH 3/3] verify: remove verify_true
Date: Wed, 19 Jun 2019 00:26:49 +0200
User-agent: KMail/5.1.3 (Linux/4.4.0-145-generic; KDE/5.18.0; x86_64; ; )

Hi Paul,

>  2019-05-09  Paul Eggert  <address@hidden>
>  
> +     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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]