aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
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/cp
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/cp')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/decl2.c28
2 files changed, 22 insertions, 11 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index fafb15c..385f921 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2000-05-28 Gabriel Dos Reis <gdr@codesourcery.com>
+
+ * decl2.c (lang_decode_option): Use skip_leading_substring instead
+ of plain strncmp.
+
2000-05-28 Alexandre Oliva <aoliva@cygnus.com>
* operators.def (<?): Duplicated, should have been...
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 6a90a0a..5ce75ef 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -590,6 +590,7 @@ lang_decode_option (argc, argv)
/* Some kind of -f option.
P's value is the option sans `-f'.
Search for it in the table of options. */
+ const char *option_value = NULL;
size_t j;
p += 2;
@@ -639,31 +640,36 @@ lang_decode_option (argc, argv)
flag_new_abi = 0;
flag_do_squangling = 0;
}
- else if (!strncmp (p, "template-depth-", 15))
+ else if ((option_value
+ = skip_leading_substring (p, "template-depth-")))
max_tinst_depth
- = read_integral_parameter (p + 15, p - 2, max_tinst_depth);
- else if (!strncmp (p, "name-mangling-version-", 22))
+ = read_integral_parameter (option_value, p - 2, max_tinst_depth);
+ else if ((option_value
+ = skip_leading_substring (p, "name-mangling-version-")))
name_mangling_version
- = read_integral_parameter (p + 22, p - 2, name_mangling_version);
- else if (!strncmp (p, "message-length=", 15))
+ = read_integral_parameter (option_value, p - 2, name_mangling_version);
+ else if ((option_value
+ = skip_leading_substring (p, "message-length=")))
set_message_length
- (read_integral_parameter (p + 15, p - 2,
+ (read_integral_parameter (option_value, p - 2,
/* default line-wrap length */ 72));
- else if (!strncmp (p, "diagnostics-show-location=", 26))
+ else if ((option_value
+ = skip_leading_substring (p, "diagnostics-show-location=")))
{
- if (!strncmp (p + 26, "once", 4))
+ if (!strcmp (option_value, "once"))
set_message_prefixing_rule (DIAGNOSTICS_SHOW_PREFIX_ONCE);
- else if (!strncmp (p + 26, "every-line", 10))
+ else if (!strcmp (option_value, "every-line"))
set_message_prefixing_rule (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE);
else
error ("Unrecognized option `%s'", p - 2);
}
- else if (!strncmp (p, "dump-translation-unit-", 22))
+ else if ((option_value
+ = skip_leading_substring (p, "dump-translation-unit-")))
{
if (p[22] == '\0')
error ("no file specified with -fdump-translation-unit");
else
- flag_dump_translation_unit = p + 22;
+ flag_dump_translation_unit = option_value;
}
else
{