Ping A week ago I decided it is so minor that I can report here with a patch without creating bugzilla PR. Technically it is a "9 regression" in new functionality added back in summer.
Patch was succesfully bootstrapped and regtested on x86_64. Ok for trunk? чт, 21 мар. 2019 г. в 18:53, Roman Zhuykov <zhr...@ispras.ru>: > > Hello, I have found a minor diagnostic issue. > > Since r262910 we got a little odd error messages in cases like this: > $ gcc -flto-compression-level=2-O2 -c empty.c > gcc: error: argument to '-flto-compression-level=' is not between 0 and 9 > $ g++ -fabi-version=2-O2 -c empty.cpp > cc1plus: error: '-fabi-version=1' is no longer supported > > Old messages were more correct: > $ gcc-8 -flto-compression-level=2-O2 -c empty.c > gcc: error: argument to '-flto-compression-level=' should be a > non-negative integer > $ g++-8 -fabi-version=2-O2 -c empty.cpp > g++: error: argument to '-fabi-version=' should be a non-negative integer > > When UInteger option value string is not a number, but it's first char > is a digit, integral_argument function returns -1 without setting > *err. > > Proposed untested patch attached. > > -- > Best Regards, > Roman Zhuykov > > gcc/ChangeLog: > > 2019-03-21 Roman Zhuykov <zhr...@ispras.ru> > > * opts-common.c (integral_argument): Set errno properly in one case. > > diff --git a/gcc/opts-common.c b/gcc/opts-common.c > --- a/gcc/opts-common.c > +++ b/gcc/opts-common.c > @@ -205,8 +205,10 @@ integral_argument (const char *arg, int *err, > bool byte_size_suffix) > value = strtoull (arg, &end, 0); > if (*end) > { > - /* errno is most likely EINVAL here. */ > - *err = errno; > + if (errno) > + *err = errno; > + else > + *err = EINVAL; > return -1; > }