summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Zhuykov <zhroma@ispras.ru>2019-03-29 18:44:01 +0000
committerJeff Law <law@gcc.gnu.org>2019-03-29 12:44:01 -0600
commit7ad99f7d21983de63725701832e03d095842b3ae (patch)
tree6c0a60cb1acc5a3493ef6ff51ecfa0f2b66741ef
parentc072398e0f99551edb513735ef7c648f90a68eb6 (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/ChangeLog4
-rw-r--r--gcc/opts-common.c6
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/diag-sanity.c7
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 } */