Public bug reported:

I wish to use the -Wconversion at gcc (the warnings are instructive for
me, and they already taught me a lot), but then:

$ bash bison_conversion_bug.sh 
y.tab.c: In function ‘yyparse’:
y.tab.c:1023:12: warning: conversion to ‘yytype_int16 {aka short int}’ from 
‘int’ may alter its value [-Wconversion]
   *yyssp = yystate;
            ^~~~~~~
y.tab.c:1028:25: warning: conversion to ‘long unsigned int’ from ‘long int’ may 
change the sign of the result [-Wsign-conversion]
       YYSIZE_T yysize = yyssp - yyss + 1;
                         ^~~~~
$

I get this problem even in an almost empty grammar and minimal C source
frame for it, see the attachment: an example for minimal grammar and
minimal C frame ALREADY providing the error.

This is the error in case of my Ubuntu 18.04 ( bison --version = 3.0.4,
gcc --version = (Ubuntu 7.3.0-12ubuntu1) 7.3.0).

I could try Debian jessie, where I get exactly the same error at exactly
the same line position ( bison --version = 3.0.2, gcc --version =
(Debian 4.9.2-10+deb8u1) 4.9.2).

MY SUGGESTION: IF the bison developers are sure, that "yystate" and
"yyssp - yyss + 1" will always fit into "short int" or "long unsigned
int", THEN an explicit casting could be a solution.  HOWEVER in case of
"yystate" it would be much more relaxing to make a decision whether it
should be an "int" or "short int".

The compilation commands are:

CCOPTS=''
CCOPTS+=' -std=c11'
CCOPTS+=' -Og -g'
CCOPTS+=' -Wabi'
CCOPTS+=' -Wfatal-errors'
CCOPTS+=' -Wall'
CCOPTS+=' -Wextra'
CCOPTS+=' -Wreturn-type'
CCOPTS+=' -Wconversion'  ### bison has 2 conversion errors
CCOPTS+=' -fexceptions'
CCOPTS+=' -pedantic-errors'
CCOPTS+=' -fmax-errors=1'

rm -f y.output y.tab.h y.tab.c y.tab.o
bison --yacc --verbose -d "EXAMPLE_GIVEN_IN_THE_ATTACHMENT.y"
gcc -c ${CCOPTS} y.tab.c

** Affects: gnome-settings-daemon (Ubuntu)
     Importance: Undecided
         Status: New

** Attachment added: "minimal grammar with minimal C frame"
   
https://bugs.launchpad.net/bugs/1758373/+attachment/5088332/+files/bison_conversion_bug.y

-- 
You received this bug notification because you are a member of Ubuntu
Desktop Bugs, which is subscribed to gnome-settings-daemon in Ubuntu.
https://bugs.launchpad.net/bugs/1758373

Title:
  bison -Wconversion warning

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/1758373/+subscriptions

-- 
desktop-bugs mailing list
desktop-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/desktop-bugs

Reply via email to