Commit aa6ad1a6 by Jason Merrill Committed by Jason Merrill

cppmacro.c (_cpp_backup_tokens): Pop cur_run before decrementing cur_token, not after.

        * cppmacro.c (_cpp_backup_tokens): Pop cur_run before decrementing
        cur_token, not after.

        * config/clipper/clix.h, config/h8300/elf.h, config/mips/linux.h:
        Lose ASM_OUTPUT_CONSTRUCTOR.
        * system.h: Poison it and INT_ASM_OP.
        * c-lang.c (finish_file): Don't check for it.
        * libgcc2.c (L_ctors): Check TARGET_ASM_CONSTRUCTOR instead.

From-SVN: r47169
parent 55d56a90
2001-11-19 Jason Merrill <jason@redhat.com>
* cppmacro.c (_cpp_backup_tokens): Pop cur_run before decrementing
cur_token, not after.
* config/clipper/clix.h, config/h8300/elf.h, config/mips/linux.h:
Lose ASM_OUTPUT_CONSTRUCTOR.
* system.h: Poison it and INT_ASM_OP.
* c-lang.c (finish_file): Don't check for it.
* libgcc2.c (L_ctors): Check TARGET_ASM_CONSTRUCTOR instead.
2001-11-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2001-11-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* mmix.c (mmix_cc1_ignored_option): Const-ify. * mmix.c (mmix_cc1_ignored_option): Const-ify.
......
...@@ -203,7 +203,6 @@ lookup_objc_ivar (id) ...@@ -203,7 +203,6 @@ lookup_objc_ivar (id)
return 0; return 0;
} }
#if !defined(ASM_OUTPUT_CONSTRUCTOR) || !defined(ASM_OUTPUT_DESTRUCTOR)
extern tree static_ctors; extern tree static_ctors;
extern tree static_dtors; extern tree static_dtors;
...@@ -253,7 +252,6 @@ finish_cdtor (body) ...@@ -253,7 +252,6 @@ finish_cdtor (body)
finish_function (0); finish_function (0);
} }
#endif
/* Register a function tree, so that its optimization and conversion /* Register a function tree, so that its optimization and conversion
to RTL is only done at the end of the compilation. */ to RTL is only done at the end of the compilation. */
...@@ -307,7 +305,6 @@ finish_file () ...@@ -307,7 +305,6 @@ finish_file ()
VARRAY_FREE (deferred_fns); VARRAY_FREE (deferred_fns);
#ifndef ASM_OUTPUT_CONSTRUCTOR
if (static_ctors) if (static_ctors)
{ {
tree body = start_cdtor ('I'); tree body = start_cdtor ('I');
...@@ -318,8 +315,6 @@ finish_file () ...@@ -318,8 +315,6 @@ finish_file ()
finish_cdtor (body); finish_cdtor (body);
} }
#endif
#ifndef ASM_OUTPUT_DESTRUCTOR
if (static_dtors) if (static_dtors)
{ {
tree body = start_cdtor ('D'); tree body = start_cdtor ('D');
...@@ -330,7 +325,6 @@ finish_file () ...@@ -330,7 +325,6 @@ finish_file ()
finish_cdtor (body); finish_cdtor (body);
} }
#endif
if (back_end_hook) if (back_end_hook)
(*back_end_hook) (getdecls ()); (*back_end_hook) (getdecls ());
......
...@@ -83,7 +83,7 @@ do { \ ...@@ -83,7 +83,7 @@ do { \
and CTOR_LIST_END to contribute to the .init section an instruction to and CTOR_LIST_END to contribute to the .init section an instruction to
push a word containing 0 (or some equivalent of that). push a word containing 0 (or some equivalent of that).
ASM_OUTPUT_CONSTRUCTOR should be defined to push the address of the TARGET_ASM_CONSTRUCTOR should be defined to push the address of the
constructor. */ constructor. */
#define CTOR_LIST_BEGIN \ #define CTOR_LIST_BEGIN \
......
...@@ -10,8 +10,6 @@ ...@@ -10,8 +10,6 @@
#undef DTORS_SECTION_ASM_OP #undef DTORS_SECTION_ASM_OP
#undef INIT_SECTION_ASM_OP #undef INIT_SECTION_ASM_OP
#undef READONLY_DATA_SECTION #undef READONLY_DATA_SECTION
#undef ASM_OUTPUT_CONSTRUCTOR
#undef ASM_OUTPUT_DESTRUCTOR
#undef TARGET_ASM_NAMED_SECTION #undef TARGET_ASM_NAMED_SECTION
#undef TARGET_MEM_FUNCTIONS #undef TARGET_MEM_FUNCTIONS
#undef PREFERRED_DEBUGGING_TYPE #undef PREFERRED_DEBUGGING_TYPE
......
...@@ -117,29 +117,6 @@ void FN () \ ...@@ -117,29 +117,6 @@ void FN () \
} \ } \
} }
/* A C statement (sans semicolon) to output an element in the table of
global constructors. */
#undef ASM_OUTPUT_CONSTRUCTOR
#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
do { \
ctors_section (); \
fprintf (FILE, "\t%s\t", TARGET_LONG64 ? ".dword" : ".word"); \
assemble_name (FILE, NAME); \
fprintf (FILE, "\n"); \
} while (0)
/* A C statement (sans semicolon) to output an element in the table of
global destructors. */
#undef ASM_OUTPUT_DESTRUCTOR
#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
do { \
dtors_section (); \
fprintf (FILE, "\t%s\t", TARGET_LONG64 ? ".dword" : ".word"); \
assemble_name (FILE, NAME); \
fprintf (FILE, "\n"); \
} while (0)
#undef TARGET_VERSION #undef TARGET_VERSION
#if TARGET_ENDIAN_DEFAULT == 0 #if TARGET_ENDIAN_DEFAULT == 0
#define TARGET_VERSION fprintf (stderr, " (MIPSel GNU/Linux with ELF)"); #define TARGET_VERSION fprintf (stderr, " (MIPSel GNU/Linux with ELF)");
......
...@@ -1087,12 +1087,12 @@ _cpp_backup_tokens (pfile, count) ...@@ -1087,12 +1087,12 @@ _cpp_backup_tokens (pfile, count)
pfile->lookaheads += count; pfile->lookaheads += count;
while (count--) while (count--)
{ {
pfile->cur_token--;
if (pfile->cur_token == pfile->cur_run->base) if (pfile->cur_token == pfile->cur_run->base)
{ {
pfile->cur_run = pfile->cur_run->prev; pfile->cur_run = pfile->cur_run->prev;
pfile->cur_token = pfile->cur_run->limit; pfile->cur_token = pfile->cur_run->limit;
} }
pfile->cur_token--;
} }
} }
else else
......
...@@ -2834,7 +2834,7 @@ SYMBOL__MAIN () ...@@ -2834,7 +2834,7 @@ SYMBOL__MAIN ()
Long term no port should use those extensions. But many still do. */ Long term no port should use those extensions. But many still do. */
#if !defined(INIT_SECTION_ASM_OP) && !defined(CTOR_LISTS_DEFINED_EXTERNALLY) #if !defined(INIT_SECTION_ASM_OP) && !defined(CTOR_LISTS_DEFINED_EXTERNALLY)
#if defined (ASM_OUTPUT_CONSTRUCTOR) || defined (USE_COLLECT2) #if defined (TARGET_ASM_CONSTRUCTOR) || defined (USE_COLLECT2)
func_ptr __CTOR_LIST__[2] = {0, 0}; func_ptr __CTOR_LIST__[2] = {0, 0};
func_ptr __DTOR_LIST__[2] = {0, 0}; func_ptr __DTOR_LIST__[2] = {0, 0};
#else #else
......
...@@ -603,7 +603,12 @@ typedef union tree_node *tree; ...@@ -603,7 +603,12 @@ typedef union tree_node *tree;
VALID_MACHINE_DECL_ATTRIBUTE VALID_MACHINE_TYPE_ATTRIBUTE \ VALID_MACHINE_DECL_ATTRIBUTE VALID_MACHINE_TYPE_ATTRIBUTE \
SET_DEFAULT_TYPE_ATTRIBUTES SET_DEFAULT_DECL_ATTRIBUTES \ SET_DEFAULT_TYPE_ATTRIBUTES SET_DEFAULT_DECL_ATTRIBUTES \
MERGE_MACHINE_TYPE_ATTRIBUTES MERGE_MACHINE_DECL_ATTRIBUTES \ MERGE_MACHINE_TYPE_ATTRIBUTES MERGE_MACHINE_DECL_ATTRIBUTES \
MD_INIT_BUILTINS MD_EXPAND_BUILTIN MD_INIT_BUILTINS MD_EXPAND_BUILTIN ASM_OUTPUT_CONSTRUCTOR \
ASM_OUTPUT_DESTRUCTOR
/* And other obsolete target macros. */
#pragma GCC poison INT_ASM_OP
#endif /* IN_GCC */ #endif /* IN_GCC */
/* Note: not all uses of the `index' token (e.g. variable names and /* Note: not all uses of the `index' token (e.g. variable names and
......
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