re PR bootstrap/50237 (bootstrap comparison failure for libcpp/lex.o)
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. From-SVN: r182090
This commit is contained in:
parent
ff180d72d9
commit
b0c084b712
@ -1,3 +1,13 @@
|
|||||||
|
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>
|
2011-12-03 Dodji Seketeli <dodji@redhat.com>
|
||||||
|
|
||||||
* macro.c (tokens_buff_remove_last_token)
|
* macro.c (tokens_buff_remove_last_token)
|
||||||
|
@ -134,6 +134,8 @@ init_library (void)
|
|||||||
{
|
{
|
||||||
initialized = 1;
|
initialized = 1;
|
||||||
|
|
||||||
|
_cpp_init_lexer ();
|
||||||
|
|
||||||
/* Set up the trigraph map. This doesn't need to do anything if
|
/* Set up the trigraph map. This doesn't need to do anything if
|
||||||
we were compiled with a compiler that supports C99 designated
|
we were compiled with a compiler that supports C99 designated
|
||||||
initializers. */
|
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 void _cpp_init_tokenrun (tokenrun *, unsigned int);
|
||||||
extern cpp_hashnode *_cpp_lex_identifier (cpp_reader *, const char *);
|
extern cpp_hashnode *_cpp_lex_identifier (cpp_reader *, const char *);
|
||||||
extern int _cpp_remaining_tokens_num_in_context (cpp_context *);
|
extern int _cpp_remaining_tokens_num_in_context (cpp_context *);
|
||||||
|
extern void _cpp_init_lexer (void);
|
||||||
|
|
||||||
/* In init.c. */
|
/* In init.c. */
|
||||||
extern void _cpp_maybe_push_include_file (cpp_reader *);
|
extern void _cpp_maybe_push_include_file (cpp_reader *);
|
||||||
|
13
libcpp/lex.c
13
libcpp/lex.c
@ -477,7 +477,8 @@ search_line_sse42 (const uchar *s, const uchar *end)
|
|||||||
typedef const uchar * (*search_line_fast_type) (const uchar *, const uchar *);
|
typedef const uchar * (*search_line_fast_type) (const uchar *, const uchar *);
|
||||||
static search_line_fast_type search_line_fast;
|
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)
|
init_vectorized_lexer (void)
|
||||||
{
|
{
|
||||||
unsigned dummy, ecx = 0, edx = 0;
|
unsigned dummy, ecx = 0, edx = 0;
|
||||||
@ -638,6 +639,16 @@ search_line_fast (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
|
|||||||
|
|
||||||
#endif
|
#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
|
/* Returns with a logical line that contains no escaped newlines or
|
||||||
trigraphs. This is a time-critical inner loop. */
|
trigraphs. This is a time-critical inner loop. */
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user