diff options
author | Richard Stallman <rms@gnu.org> | 1992-05-09 07:00:44 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-05-09 07:00:44 +0000 |
commit | 2dcb563f6cccc1a1d222e1141c8b15f06798ac97 (patch) | |
tree | b9c8d53638aefdbe9a3932947ee2682b0f21aede /gcc | |
parent | a8031c4edce5929649e0c2558f5a7977cc4b89fa (diff) | |
download | gcc-2dcb563f6cccc1a1d222e1141c8b15f06798ac97.zip gcc-2dcb563f6cccc1a1d222e1141c8b15f06798ac97.tar.gz gcc-2dcb563f6cccc1a1d222e1141c8b15f06798ac97.tar.bz2 |
*** empty log message ***
From-SVN: r945
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/gcc.c | 17 | ||||
-rw-r--r-- | gcc/rtl.c | 32 |
2 files changed, 29 insertions, 20 deletions
@@ -94,6 +94,11 @@ extern int execv (), execvp (); #define MIN_FATAL_STATUS 1 +/* Flag saying to print the full filename of libgcc.a + as found through our usual search mechanism. */ + +static int print_libgcc_file_name; + /* Flag indicating whether we should print the command and arguments */ static int verbose_flag; @@ -1826,6 +1831,10 @@ process_command (argc, argv) printf ("%s\n", version_string); exit (0); } + else if (! strcmp (argv[i], "-print-libgcc-file-name")) + { + print_libgcc_file_name = 1; + } else if (! strcmp (argv[i], "-Xlinker")) { /* Pass the argument of this option to the linker when we link. */ @@ -1939,6 +1948,8 @@ process_command (argc, argv) { if (!strcmp (argv[i], "-Xlinker")) i++; + else if (! strcmp (argv[i], "-print-libgcc-file-name")) + i++; else if (argv[i][0] == '-' && argv[i][1] != 0 && argv[i][1] != 'l') { register char *p = &argv[i][1]; @@ -3038,6 +3049,12 @@ main (argc, argv) if (! switches[i].valid) error ("unrecognized option `-%s'", switches[i].part1); + if (print_libgcc_file_name) + { + printf ("%s\n", find_file ("libgcc.a")); + exit (0); + } + /* Obey some of the options. */ if (verbose_flag) @@ -642,36 +642,28 @@ read_rtx (infile) } if (c != '"') dump_and_abort ('"', c, infile); - j = 0; - stringbufsize = 10; - stringbuf = (char *) xmalloc (stringbufsize + 1); while (1) { - if (j >= stringbufsize - 4) + c = getc (infile); /* Read the string */ + if (c == '\\') { - stringbufsize *= 2; - stringbuf = (char *) xrealloc (stringbuf, stringbufsize + 1); - } - stringbuf[j] = getc (infile); /* Read the string */ - if (stringbuf[j] == '\\') - { - stringbuf[j] = getc (infile); /* Read the string */ + c = getc (infile); /* Read the string */ /* \; makes stuff for a C string constant containing newline and tab. */ - if (stringbuf[j] == ';') - { - strcpy (&stringbuf[j], "\\n\\t"); - j += 3; - } + if (c == ';') + obstack_grow (rtl_obstack, "\\n\\t", 4); + else + obstack_1grow (rtl_obstack, c); } - else if (stringbuf[j] == '"') + else if (c == '"') break; - j++; + + obstack_1grow (rtl_obstack, c); } - stringbuf[j] = 0; /* NUL terminate the string */ - stringbuf = (char *) xrealloc (stringbuf, j + 1); + obstack_1grow (rtl_obstack, 0); + stringbuf = (char *) obstack_finish (rtl_obstack); if (saw_paren) { |