driver: Do not warn about ineffective `-x' option if no inputs were given
authorMaciej W. Rozycki <macro@wdc.com>
Sat, 30 Nov 2019 11:10:50 +0000 (11:10 +0000)
committerMaciej W. Rozycki <macro@gcc.gnu.org>
Sat, 30 Nov 2019 11:10:50 +0000 (11:10 +0000)
Fix an issue with the GCC driver and the `-x' option where a warning is
issued in an invocation like:

$ riscv64-linux-gnu-gcc -print-multi-directory -x c++
riscv64-linux-gnu-gcc: warning: '-x c++' after last input file has no effect
lib64/lp64d
$

where no inputs were given and hence the use of `-x' is irrelevant.
The statement printed is also untrue as the `-x' does not come after the
last input file given that none was given.  Do not print it then if no
inputs were supplied.

* gcc.c (process_command): Only warn about an ineffective `-x'
option if any input files have actually been supplied.

From-SVN: r278872

gcc/ChangeLog
gcc/gcc.c

index e174404..2a29e1b 100644 (file)
@@ -1,5 +1,10 @@
 2019-11-30  Maciej W. Rozycki  <macro@wdc.com>
 
+       * gcc.c (process_command): Only warn about an ineffective `-x'
+       option if any input files have actually been supplied.
+
+2019-11-30  Maciej W. Rozycki  <macro@wdc.com>
+
        * doc/install.texi (Options specification): Remove the list of
        target library subdirectories supporting
        `--enable-version-specific-runtime-libs'.  Document defaults for
index 539ded0..4428d50 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -4741,7 +4741,7 @@ process_command (unsigned int decoded_options_count,
   /* More prefixes are enabled in main, after we read the specs file
      and determine whether this is cross-compilation or not.  */
 
-  if (n_infiles == last_language_n_infiles && spec_lang != 0)
+  if (n_infiles != 0 && n_infiles == last_language_n_infiles && spec_lang != 0)
     warning (0, "%<-x %s%> after last input file has no effect", spec_lang);
 
   /* Synthesize -fcompare-debug flag from the GCC_COMPARE_DEBUG