Commit b735cc56 authored by jakub's avatar jakub
Browse files

PR bootstrap/50237

	* internal.h (_cpp_init_lexer): New prototype.
	* init.c (init_library): Call it.
	* lex.c (init_vectorized_lexer): Remove constructor attribute,
	add inline keyword.
	(HAVE_init_vectorized_lexer): Define.
	(_cpp_init_lexer): New function.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182090 138bc75d-0d04-0410-961f-82ee72b054a4
parent 5f72d880
2011-12-07 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/50237
* internal.h (_cpp_init_lexer): New prototype.
* init.c (init_library): Call it.
* lex.c (init_vectorized_lexer): Remove constructor attribute,
add inline keyword.
(HAVE_init_vectorized_lexer): Define.
(_cpp_init_lexer): New function.
2011-12-03 Dodji Seketeli <dodji@redhat.com>
* macro.c (tokens_buff_remove_last_token)
......
......@@ -134,6 +134,8 @@ init_library (void)
{
initialized = 1;
_cpp_init_lexer ();
/* Set up the trigraph map. This doesn't need to do anything if
we were compiled with a compiler that supports C99 designated
initializers. */
......
......@@ -653,6 +653,7 @@ extern int _cpp_equiv_tokens (const cpp_token *, const cpp_token *);
extern void _cpp_init_tokenrun (tokenrun *, unsigned int);
extern cpp_hashnode *_cpp_lex_identifier (cpp_reader *, const char *);
extern int _cpp_remaining_tokens_num_in_context (cpp_context *);
extern void _cpp_init_lexer (void);
/* In init.c. */
extern void _cpp_maybe_push_include_file (cpp_reader *);
......
......@@ -477,7 +477,8 @@ search_line_sse42 (const uchar *s, const uchar *end)
typedef const uchar * (*search_line_fast_type) (const uchar *, const uchar *);
static search_line_fast_type search_line_fast;
static void __attribute__((constructor))
#define HAVE_init_vectorized_lexer 1
static inline void
init_vectorized_lexer (void)
{
unsigned dummy, ecx = 0, edx = 0;
......@@ -638,6 +639,16 @@ search_line_fast (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
#endif
/* Initialize the lexer if needed. */
void
_cpp_init_lexer (void)
{
#ifdef HAVE_init_vectorized_lexer
init_vectorized_lexer ();
#endif
}
/* Returns with a logical line that contains no escaped newlines or
trigraphs. This is a time-critical inner loop. */
void
......
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