+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>
* mmix.c (mmix_cc1_ignored_option): Const-ify.
return 0;
}
-#if !defined(ASM_OUTPUT_CONSTRUCTOR) || !defined(ASM_OUTPUT_DESTRUCTOR)
extern tree static_ctors;
extern tree static_dtors;
finish_function (0);
}
-#endif
/* Register a function tree, so that its optimization and conversion
to RTL is only done at the end of the compilation. */
VARRAY_FREE (deferred_fns);
-#ifndef ASM_OUTPUT_CONSTRUCTOR
if (static_ctors)
{
tree body = start_cdtor ('I');
finish_cdtor (body);
}
-#endif
-#ifndef ASM_OUTPUT_DESTRUCTOR
if (static_dtors)
{
tree body = start_cdtor ('D');
finish_cdtor (body);
}
-#endif
if (back_end_hook)
(*back_end_hook) (getdecls ());
and CTOR_LIST_END to contribute to the .init section an instruction to
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. */
#define CTOR_LIST_BEGIN \
#undef DTORS_SECTION_ASM_OP
#undef INIT_SECTION_ASM_OP
#undef READONLY_DATA_SECTION
-#undef ASM_OUTPUT_CONSTRUCTOR
-#undef ASM_OUTPUT_DESTRUCTOR
#undef TARGET_ASM_NAMED_SECTION
#undef TARGET_MEM_FUNCTIONS
#undef PREFERRED_DEBUGGING_TYPE
} \
}
-/* 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
#if TARGET_ENDIAN_DEFAULT == 0
#define TARGET_VERSION fprintf (stderr, " (MIPSel GNU/Linux with ELF)");
pfile->lookaheads += count;
while (count--)
{
- pfile->cur_token--;
if (pfile->cur_token == pfile->cur_run->base)
{
pfile->cur_run = pfile->cur_run->prev;
pfile->cur_token = pfile->cur_run->limit;
}
+ pfile->cur_token--;
}
}
else
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 (ASM_OUTPUT_CONSTRUCTOR) || defined (USE_COLLECT2)
+#if defined (TARGET_ASM_CONSTRUCTOR) || defined (USE_COLLECT2)
func_ptr __CTOR_LIST__[2] = {0, 0};
func_ptr __DTOR_LIST__[2] = {0, 0};
#else
VALID_MACHINE_DECL_ATTRIBUTE VALID_MACHINE_TYPE_ATTRIBUTE \
SET_DEFAULT_TYPE_ATTRIBUTES SET_DEFAULT_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 */
/* Note: not all uses of the `index' token (e.g. variable names and