diff options
author | Roman Zhuykov <zhroma@ispras.ru> | 2019-03-29 18:44:01 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2019-03-29 12:44:01 -0600 |
commit | 7ad99f7d21983de63725701832e03d095842b3ae (patch) | |
tree | 6c0a60cb1acc5a3493ef6ff51ecfa0f2b66741ef | |
parent | c072398e0f99551edb513735ef7c648f90a68eb6 (diff) |
opts-common.c (integral_argument): Set errno properly in one case.
* opts-common.c (integral_argument): Set errno properly in one case.
* gcc.dg/diag-sanity.c: New test.
From-SVN: r270022
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/opts-common.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/diag-sanity.c | 7 |
4 files changed, 19 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 76457ac956e..15b24087e28 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2019-03-29 Roman Zhuykov <zhroma@ispras.ru> + + * opts-common.c (integral_argument): Set errno properly in one case. + 2019-03-29 Martin Liska <mliska@suse.cz> * doc/invoke.texi: Remove -Wchkp from documentation. diff --git a/gcc/opts-common.c b/gcc/opts-common.c index edbb3ac9b6d..8456dcc697b 100644 --- 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; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 960a86508b0..9d6743d725a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2019-03-29 Roman Zhuykov <zhroma@ispras.ru> + + * gcc.dg/diag-sanity.c: New test. + 2019-03-29 Marek Polacek <polacek@redhat.com> PR c++/89871 diff --git a/gcc/testsuite/gcc.dg/diag-sanity.c b/gcc/testsuite/gcc.dg/diag-sanity.c new file mode 100644 index 00000000000..5e58d96633f --- /dev/null +++ b/gcc/testsuite/gcc.dg/diag-sanity.c @@ -0,0 +1,7 @@ +/* Verify that an invalid argument is diagnosed correcly. + { dg-do compile } + { dg-options "-fdiagnostics-minimum-margin-width=42xyz -flto-compression-level=2-O2" } */ + + +/* { dg-error "argument to '-fdiagnostics-minimum-margin-width=' should be a non-negative integer" "" { target *-*-* } 0 } + { dg-error "argument to '-flto-compression-level=' should be a non-negative integer" "" { target *-*-* } 0 } */ |