aboutsummaryrefslogtreecommitdiff
path: root/gcc/toplev.c
diff options
context:
space:
mode:
authorGabriel Dos Reis <gdr@codesourcery.com>2000-05-28 21:22:12 +0000
committerGabriel Dos Reis <gdr@gcc.gnu.org>2000-05-28 21:22:12 +0000
commit6f5ef761dff56f6fad015e13d16d1ec12283a25c (patch)
tree8ea1a5fdfdba85a8c2a066a09b4a28546171a2b0 /gcc/toplev.c
parent055177dc83b011c37b3b78c23d4f86d471bf21c7 (diff)
downloadgcc-6f5ef761dff56f6fad015e13d16d1ec12283a25c.zip
gcc-6f5ef761dff56f6fad015e13d16d1ec12283a25c.tar.gz
gcc-6f5ef761dff56f6fad015e13d16d1ec12283a25c.tar.bz2
toplev.h (skip_leading_substring): New macro.
2000-05-28 Gabriel Dos Reis <gdr@codesourcery.com> * toplev.h (skip_leading_substring): New macro. * toplev.c (decode_f_option): Use skip_leading_substring instead of strncmp. (decode_W_option): Likewise. cp/ 2000-05-28 Gabriel Dos Reis <gdr@codesourcery.com> * decl2.c (lang_decode_option): Use skip_leading_substring instead of plain strncmp. From-SVN: r34240
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r--gcc/toplev.c63
1 files changed, 34 insertions, 29 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 1fc72f1..e8e279e 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -3923,6 +3923,7 @@ decode_f_option (arg)
const char * arg;
{
int j;
+ const char *option_value = NULL;
/* Search for the option in the table of binary f options. */
for (j = sizeof (f_options) / sizeof (f_options[0]); j--;)
@@ -3941,44 +3942,47 @@ decode_f_option (arg)
}
}
- if (!strncmp (arg, "inline-limit-", 13)
- || !strncmp (arg, "inline-limit=", 13))
+ if ((option_value = skip_leading_substring (arg, "inline-limit-"))
+ || (option_value = skip_leading_substring (arg, "inline-limit=")))
inline_max_insns =
- read_integral_parameter (arg + 13, arg - 2, inline_max_insns);
+ read_integral_parameter (option_value, arg - 2, inline_max_insns);
#ifdef INSN_SCHEDULING
- else if (!strncmp (arg, "sched-verbose=", 14))
- fix_sched_param ("verbose", (const char *)(arg + 14));
+ else if ((option_value = skip_leading_substring (arg, "sched-verbose=")))
+ fix_sched_param ("verbose", option_value);
#endif
- else if (!strncmp (arg, "fixed-", 6))
- fix_register ((const char *)(arg + 6), 1, 1);
- else if (!strncmp (arg, "call-used-", 10))
- fix_register ((const char *)(arg + 10), 0, 1);
- else if (!strncmp (arg, "call-saved-", 11))
- fix_register ((const char *)(arg + 11), 0, 0);
- else if (!strncmp (arg, "align-loops=", 12))
- align_loops = read_integral_parameter (arg + 12, arg - 2, align_loops);
- else if (!strncmp (arg, "align-functions=", 16))
+ else if ((option_value = skip_leading_substring (arg, "fixed-")))
+ fix_register (option_value, 1, 1);
+ else if ((option_value = skip_leading_substring (arg, "call-used-")))
+ fix_register (option_value, 0, 1);
+ else if ((option_value = skip_leading_substring (arg, "call-saved-")))
+ fix_register (option_value, 0, 0);
+ else if ((option_value = skip_leading_substring (arg, "align-loops=")))
+ align_loops = read_integral_parameter (option_value, arg - 2, align_loops);
+ else if ((option_value = skip_leading_substring (arg, "align-functions=")))
align_functions
- = read_integral_parameter (arg + 16, arg - 2, align_functions);
- else if (!strncmp (arg, "align-jumps=", 12))
- align_jumps = read_integral_parameter (arg + 12, arg - 2, align_jumps);
- else if (!strncmp (arg, "align-labels=", 13))
- align_labels = read_integral_parameter (arg + 13, arg - 2, align_labels);
- else if (!strncmp (arg, "stack-limit-register=", 21))
+ = read_integral_parameter (option_value, arg - 2, align_functions);
+ else if ((option_value = skip_leading_substring (arg, "align-jumps=")))
+ align_jumps = read_integral_parameter (option_value, arg - 2, align_jumps);
+ else if ((option_value = skip_leading_substring (arg, "align-labels=")))
+ align_labels
+ = read_integral_parameter (option_value, arg - 2, align_labels);
+ else if ((option_value
+ = skip_leading_substring (arg, "stack-limit-register=")))
{
- int reg = decode_reg_name (arg + 21);
+ int reg = decode_reg_name (option_value);
if (reg < 0)
- error ("unrecognized register name `%s'", arg + 21);
+ error ("unrecognized register name `%s'", option_value);
else
stack_limit_rtx = gen_rtx_REG (Pmode, reg);
}
- else if (!strncmp (arg, "stack-limit-symbol=", 19))
+ else if ((option_value
+ = skip_leading_substring (arg, "stack-limit-symbol=")))
{
char *nm;
if (ggc_p)
- nm = ggc_alloc_string (arg + 19, strlen (arg + 19));
+ nm = ggc_alloc_string (option_value, strlen (option_value));
else
- nm = xstrdup (arg + 19);
+ nm = xstrdup (option_value);
stack_limit_rtx = gen_rtx_SYMBOL_REF (Pmode, nm);
}
else if (!strcmp (arg, "no-stack-limit"))
@@ -4001,6 +4005,7 @@ static int
decode_W_option (arg)
const char * arg;
{
+ const char *option_value = NULL;
int j;
/* Search for the option in the table of binary W options. */
@@ -4021,16 +4026,16 @@ decode_W_option (arg)
}
}
- if (!strncmp (arg, "id-clash-", 9))
+ if ((option_value = skip_leading_substring (arg, "id-clash-")))
{
- id_clash_len = read_integral_parameter (arg + 9, arg - 2, -1);
+ id_clash_len = read_integral_parameter (option_value, arg - 2, -1);
if (id_clash_len != -1)
warn_id_clash = 1;
}
- else if (!strncmp (arg, "larger-than-", 12))
+ else if ((option_value = skip_leading_substring (arg, "larger-than-")))
{
- larger_than_size = read_integral_parameter (arg + 12, arg - 2, -1);
+ larger_than_size = read_integral_parameter (option_value, arg - 2, -1);
if (larger_than_size != -1)
warn_larger_than = 1;