summaryrefslogtreecommitdiff
path: root/gcc/fixinc
diff options
context:
space:
mode:
authorkorbb <korbb@138bc75d-0d04-0410-961f-82ee72b054a4>2000-07-11 15:51:18 +0000
committerkorbb <korbb@138bc75d-0d04-0410-961f-82ee72b054a4>2000-07-11 15:51:18 +0000
commit584b478a1c638cfb8e0e077fdb9da1cc5c27d1dc (patch)
treee8afe144d4e3609c18470ce6d6ad6e151a228e7a /gcc/fixinc
parent5e93e9fea6c26c9ea17d9985c95307243d009380 (diff)
downloadgcc-584b478a1c638cfb8e0e077fdb9da1cc5c27d1dc.tar.gz
Remove obsolete fix tests
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34960 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fixinc')
-rw-r--r--gcc/fixinc/fixtests.c203
1 files changed, 0 insertions, 203 deletions
diff --git a/gcc/fixinc/fixtests.c b/gcc/fixinc/fixtests.c
index bf16fba21c6..36dd6553b14 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 )
{