https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97829

            Bug ID: 97829
           Summary: pragma ignore "-Wint-in-bool-context" is ignored for
                    _Bool _Complex interaction
           Product: gcc
           Version: 10.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: antiquarktv at gmail dot com
  Target Milestone: ---

#include <stdio.h>
#include <stdlib.h>

// gcc -std=c11 -Wall -Wextra -pedantic main.c

#pragma GCC diagnostic ignored "-Wint-in-bool-context" 
#pragma GCC diagnostic ignored "-Wunused-variable" 

int main()
{
        double _Complex x = 1;
        _Bool b = 1;
        b *= x;      // prints int-in-bool-context warning.
        _Bool c = 2; // unused var warning not printed.
}

/* 

The code above prints the following when compiled:

gcc -std=c11 -Wall -Wextra -pedantic main.c
main.c: In function ‘main’:
cc1: warning: ‘*’ in boolean context, suggest ‘&&’ instead
[-Wint-in-bool-context]
cc1: warning: ‘*’ in boolean context, suggest ‘&&’ instead
[-Wint-in-bool-context]

The Wint-in-bool-context warning is printed by cc1 as a result of the _Bool *=
_Complex operation

If this code is compiled with -Wno-int-in-bool-context on the command line,
there is no warning:

gcc -std=c11 -Wall -Wextra -pedantic main.c -Wno-int-in-bool-context
(produces no output). 

*/

Reply via email to