From c5d9004e96d9726c0addd0db01824fec11d57aef Mon Sep 17 00:00:00 2001 From: Bruce Korb Date: Tue, 11 Jul 2000 15:51:18 +0000 Subject: [PATCH] Remove obsolete fix tests From-SVN: r34960 --- gcc/ChangeLog | 5 ++ gcc/fixinc/fixtests.c | 203 ------------------------------------------ 2 files changed, 5 insertions(+), 203 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bdf6074e094d..b1c92f92c2b7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-07-11 Bruce Korb + + * fixinc/fixtests.c(double_slash): obsolete + (else_endif_label): likewise + 2000-07-11 Kaveh R. Ghazi * cpplex.c (T, I, S, C, N): Avoid non-constant initializers. diff --git a/gcc/fixinc/fixtests.c b/gcc/fixinc/fixtests.c index bf16fba21c62..36dd6553b14e 100644 --- a/gcc/fixinc/fixtests.c +++ b/gcc/fixinc/fixtests.c @@ -56,8 +56,6 @@ typedef struct { } test_entry_t; #define FIX_TEST_TABLE \ - _FT_( "double_slash", double_slash_test ) \ - _FT_( "else_endif_label", else_endif_label_test ) \ _FT_( "machine_name", machine_name_test ) @@ -66,207 +64,6 @@ static apply_fix_p_t test ( fname, text ) \ tCC* fname; \ tCC* text; -/* - * Skip over a quoted string. Single quote strings may - * contain multiple characters if the first character is - * a backslash. Especially a backslash followed by octal digits. - * We are not doing a correctness syntax check here. - */ -static tCC* -skip_quote( q, text ) - char q; - char* text; -{ - for (;;) - { - char ch = *(text++); - switch (ch) - { - case '\\': - text++; /* skip over whatever character follows */ - break; - - case '"': - case '\'': - if (ch != q) - break; - /*FALLTHROUGH*/ - - case '\n': - case NUL: - goto skip_done; - } - } skip_done:; - - return text; -} - - -TEST_FOR_FIX_PROC_HEAD( double_slash_test ) -{ - if (is_cxx_header (fname, text)) - return SKIP_FIX; - - /* Now look for the comment markers in the text */ - for (;;) - { - char ch = *(text++); - switch (ch) - { - case '/': - switch (*text) /* do not advance `text' here */ - { - case '/': - /* - We found a "//" pair in open text. - The fix must be applied - */ - return APPLY_FIX; - - case '*': - /* We found a C-style comment. Skip forward to the end */ - text = strstr( text+1, "*/" ); - if (text == (char*)NULL) - goto test_done; - text += 2; - } - break; - - case NUL: - goto test_done; - - case '"': - case '\'': - text = skip_quote( ch, text ); - } - - } test_done:; - - return SKIP_FIX; -} - - -TEST_FOR_FIX_PROC_HEAD( else_endif_label_test ) -{ - static int compiled = 0; - tSCC label_pat[] = "^[ \t]*#[ \t]*(else|endif)"; - static regex_t label_re; - - char ch; - tCC* pz_next; - tCC* all_text = text; - regmatch_t match[2]; - - /* - This routine may be run many times within a single execution. - Do the compile once only in that case. In the standalone case, - we waste 10 bytes of memory and a test, branch and increment delay. */ - if (! compiled) - { - compiled++; - compile_re (label_pat, &label_re, 1, - "label pattern", "else_endif_label_test"); - } - - for (;;) /* entire file */ - { - /* Find the next else or endif in the file. */ - if (regexec (&label_re, text, 2, match, 0) != 0) - break; - pz_next = text + match[0].rm_eo; - - /* Scan from where we are up to that position, to make sure - we didn't find something in a string or comment. */ - while (pz_next > text) - { - /* - Advance the scanning pointer. If we are at the start - of a quoted string or a comment, then skip the entire unit */ - ch = *(text++); - - switch (ch) - { - case '/': - /* - Skip comments */ - if (*text == '*') - { - text = strstr( text+1, "*/" ); - if (text == (char*)NULL) - return SKIP_FIX; - text += 2; - continue; - } - break; - - case '"': - case '\'': - text = skip_quote( ch, text ); - break; - } - } - if (pz_next < text) - continue; - - /* We're at the end of a real directive. Check for bogons here. */ - for (;;) - { - char ch = *(pz_next++); - switch (ch) - { - case '\n': - /* It is clean. No bogons on this directive. */ - goto next_directive; - - case '\\': - /* Skip escaped newlines. Otherwise, we have a bogon. */ - if (*pz_next != '\n') - return APPLY_FIX; - - pz_next++; - break; - - case '/': - /* Skip comments. Otherwise, we have a bogon */ - switch (*pz_next) - { - case '/': - /* // in a C header is a bogon. */ - if (! is_cxx_header( fname, all_text )) - return APPLY_FIX; - - /* C++ comment is allowed in a C++ header. - Skip to newline and continue. */ - pz_next = strchr( pz_next+1, '\n' ); - if (pz_next == (char*)NULL) - return SKIP_FIX; - pz_next++; - goto next_directive; - - case '*': - /* A comment for either C++ or C. Skip over it. */ - pz_next = strstr( pz_next+1, "*/" ); - if (pz_next == (char*)NULL) - return SKIP_FIX; - pz_next += 2; - break; - - default: - return APPLY_FIX; - } - break; - - default: - if (!isspace (ch)) - return APPLY_FIX; - } /* switch (ch) */ - } /* for (bogon check loop) */ - next_directive:; - text = pz_next; - } /* for (entire file) loop */ - - return SKIP_FIX; -} TEST_FOR_FIX_PROC_HEAD( machine_name_test ) { -- 2.43.5