Commit 00be0e55 authored by ebotcazou's avatar ebotcazou
Browse files

PR bootstrap/12490

	* scan-decls.c (MAX_EXTERN_C_BRACES): New preprocessor constant
	to define the size of the extern_C_braces array.  Set it to 200.
	(scan_decls): Abort when extern_C_braces_length is out-of-bounds.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72224 138bc75d-0d04-0410-961f-82ee72b054a4
parent 844eef3a
2003-10-08 Timo Kokkonen <tjko@iki.fi>
Eric Botcazou <ebotcazou@libertysurf.fr>
PR bootstrap/12490
* scan-decls.c (MAX_EXTERN_C_BRACES): New preprocessor constant
to define the size of the extern_C_braces array. Set it to 200.
(scan_decls): Abort when extern_C_braces_length is out-of-bounds.
2003-10-08 Carlo Wood <carlo@alinoe.com>
* Makefile.in (gengtype-lex.c): flex 2.5.4[a] doesn't understand
......
......@@ -34,7 +34,9 @@ int brace_nesting = 0;
indicate the (brace nesting levels of) left braces that were
prefixed by extern "C". */
int extern_C_braces_length = 0;
char extern_C_braces[20];
/* 20 is not enough anymore on Solaris 9. */
#define MAX_EXTERN_C_BRACES 200
char extern_C_braces[MAX_EXTERN_C_BRACES];
#define in_extern_C_brace (extern_C_braces_length>0)
/* True if the function declaration currently being scanned is
......@@ -220,6 +222,12 @@ scan_decls (cpp_reader *pfile, int argc ATTRIBUTE_UNUSED,
brace_nesting++;
extern_C_braces[extern_C_braces_length++]
= brace_nesting;
if (extern_C_braces_length >= MAX_EXTERN_C_BRACES)
{
fprintf (stderr,
"Internal error: out-of-bounds index\n");
exit (FATAL_EXIT_CODE);
}
goto new_statement;
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment