diff options
author | Zack Weinberg <zack@gcc.gnu.org> | 2002-12-16 18:23:00 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2002-12-16 18:23:00 +0000 |
commit | 4977bab6ed59f01c73f9c8b9e92298706df9b6d5 (patch) | |
tree | c259697c448b0c6f548f153c48c46a8d7a75970f /gcc/ada/misc.c | |
parent | b51dc045004ee7eb8d2bf4358ddf22a6cc6c1d00 (diff) | |
download | gcc-4977bab6ed59f01c73f9c8b9e92298706df9b6d5.zip gcc-4977bab6ed59f01c73f9c8b9e92298706df9b6d5.tar.gz gcc-4977bab6ed59f01c73f9c8b9e92298706df9b6d5.tar.bz2 |
Merge basic-improvements-branch to trunk
From-SVN: r60174
Diffstat (limited to 'gcc/ada/misc.c')
-rw-r--r-- | gcc/ada/misc.c | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/gcc/ada/misc.c b/gcc/ada/misc.c index ad43106..a8293e7 100644 --- a/gcc/ada/misc.c +++ b/gcc/ada/misc.c @@ -37,6 +37,8 @@ #include "config.h" #include "system.h" +#include "coretypes.h" +#include "tm.h" #include "tree.h" #include "rtl.h" #include "errors.h" @@ -207,8 +209,8 @@ gnat_parse_file (set_yydebug) /* Decode all the language specific options that cannot be decoded by GCC. The option decoding phase of GCC calls this routine on the flags that - it cannot decode. This routine returns 1 if it is successful, otherwise - it returns 0. */ + it cannot decode. This routine returns the number of consecutive arguments + from ARGV that it successfully decoded; 0 indicates failure. */ static int gnat_decode_option (argc, argv) @@ -220,10 +222,28 @@ gnat_decode_option (argc, argv) if (!strncmp (p, "-I", 2)) { - /* Pass the -I switches as-is. */ - gnat_argv[gnat_argc] = p; - gnat_argc ++; - return 1; + /* We might get -I foo or -Ifoo. Canonicalize to the latter. */ + if (p[2] == '\0') + { + char *q; + + if (argv[1] == 0) + return 0; + + q = xmalloc (sizeof("-I") + strlen (argv[1])); + strcpy (q, "-I"); + strcat (q, argv[1]); + + gnat_argv[gnat_argc] = q; + gnat_argc ++; + return 2; /* consumed argument */ + } + else + { + gnat_argv[gnat_argc] = p; + gnat_argc ++; + return 1; + } } else if (!strncmp (p, "-gant", 5)) |