Work around array out of bounds warning in mkdeps
authorAndreas Krebbel <krebbel@linux.ibm.com>
Thu, 16 Jan 2020 09:41:44 +0000 (10:41 +0100)
committerAndreas Krebbel <krebbel@linux.ibm.com>
Thu, 16 Jan 2020 10:09:24 +0000 (11:09 +0100)
This suppresses an array out of bounds warning in mkdeps.c as proposed
by Martin Sebor in the bugzilla.

array subscript 2 is outside array bounds of ‘const char [2]’

Since this warning does occur during bootstrap it currently breaks
werror builds on IBM Z.

The problem can be reproduced also on x86_64 by changing the inlining
threshold using: --param max-inline-insns-auto=80

Bootstrapped and regression tested on x86_64 and IBM Z.

libcpp/ChangeLog:

2020-01-16  Andreas Krebbel  <krebbel@linux.ibm.com>

PR tree-optimization/92176
* mkdeps.c (deps_add_default_target): Avoid calling apply_vpath to
suppress an array out of bounds warning.

libcpp/mkdeps.c

index 6b2575a2709ebb0d98c43dad5edce619dc2f5897..09a111fcdd5038d208ad677234ed089ee7e2e3b4 100644 (file)
@@ -268,7 +268,7 @@ deps_add_default_target (class mkdeps *d, const char *tgt)
     return;
 
   if (tgt[0] == '\0')
-    deps_add_target (d, "-", 1);
+    d->targets.push (xstrdup ("-"));
   else
     {
 #ifndef TARGET_OBJECT_SUFFIX