Commit 18b5b8d6 by Jason Merrill Committed by Jason Merrill

dwarf2out.c (dwarf2out_finish): Don't abort because of orphan DIEs if there were…

dwarf2out.c (dwarf2out_finish): Don't abort because of orphan DIEs if there were errors in the source.

        * dwarf2out.c (dwarf2out_finish): Don't abort because of orphan
        DIEs if there were errors in the source.

        * config/alpha/alpha-interix.h, config/alpha/elf.h,
        config/arm/coff.h, config/i386/djgpp.h, config/i386/i386.c,
        config/i386/i386.h, config/i386/sco5.h, config/i960/i960-coff.h,
        config/m68k/coff.h, config/m88k/m88k.h, config/m88k/m88k.c,
        config/pa/pa64-hpux.h, config/sh/sh.h, config/sparc/litecoff.h,
        config/elfos.h, config/lynx.h, config/netware.h,
        config/m68hc11/m68hc11.h, config/mcore/mcore-pe.h,
        config/s390/linux64.h: Remove definitions of INT_ASM_OP, change
        uses to use ASM_LONG.

From-SVN: r47066
parent f6b08fe8
2001-11-15 Jason Merrill <jason@redhat.com>
* dwarf2out.c (dwarf2out_finish): Don't abort because of orphan
DIEs if there were errors in the source.
* config/alpha/alpha-interix.h, config/alpha/elf.h,
config/arm/coff.h, config/i386/djgpp.h, config/i386/i386.c,
config/i386/i386.h, config/i386/sco5.h, config/i960/i960-coff.h,
config/m68k/coff.h, config/m88k/m88k.h, config/m88k/m88k.c,
config/pa/pa64-hpux.h, config/sh/sh.h, config/sparc/litecoff.h,
config/elfos.h, config/lynx.h, config/netware.h,
config/m68hc11/m68hc11.h, config/mcore/mcore-pe.h,
config/s390/linux64.h: Remove definitions of INT_ASM_OP, change
uses to use ASM_LONG.
2001-11-15 Alan Matsuoka <alanm@redhat.com> 2001-11-15 Alan Matsuoka <alanm@redhat.com>
* gensupport.c process_include : Change call to alloca to * gensupport.c process_include : Change call to alloca to
......
...@@ -126,8 +126,6 @@ const_section () \ ...@@ -126,8 +126,6 @@ const_section () \
} \ } \
} }
#define INT_ASM_OP "\t.long\t"
/* The linker will take care of this, and having them causes problems with /* The linker will take care of this, and having them causes problems with
ld -r (specifically -rU). */ ld -r (specifically -rU). */
#define CTOR_LISTS_DEFINED_EXTERNALLY 1 #define CTOR_LISTS_DEFINED_EXTERNALLY 1
......
...@@ -165,12 +165,6 @@ do { \ ...@@ -165,12 +165,6 @@ do { \
ASM_OUTPUT_SKIP((FILE), (SIZE)); \ ASM_OUTPUT_SKIP((FILE), (SIZE)); \
} while (0) } while (0)
/* This is the pseudo-op used to generate a 64-bit word of data with a
specific value in some section. */
#undef INT_ASM_OP
#define INT_ASM_OP "\t.quad\t"
/* Biggest alignment supported by the object file format of this /* Biggest alignment supported by the object file format of this
machine. Use this macro to limit the alignment which can be machine. Use this macro to limit the alignment which can be
specified using the `__attribute__ ((aligned (N)))' construct. If specified using the `__attribute__ ((aligned (N)))' construct. If
......
...@@ -115,8 +115,6 @@ rdata_section () \ ...@@ -115,8 +115,6 @@ rdata_section () \
/* Support the ctors/dtors sections for g++. */ /* Support the ctors/dtors sections for g++. */
#define INT_ASM_OP "\t.word\t"
/* __CTOR_LIST__ and __DTOR_LIST__ must be defined by the linker script. */ /* __CTOR_LIST__ and __DTOR_LIST__ must be defined by the linker script. */
#define CTOR_LISTS_DEFINED_EXTERNALLY #define CTOR_LISTS_DEFINED_EXTERNALLY
......
...@@ -224,17 +224,6 @@ Boston, MA 02111-1307, USA. */ ...@@ -224,17 +224,6 @@ Boston, MA 02111-1307, USA. */
} \ } \
while (0) while (0)
/* This is the pseudo-op used to generate a reference to a specific
symbol in some section. It is only used in machine-specific
configuration files. This is the same for all known svr4
assemblers, except those in targets that don't use 32-bit pointers.
Those should override INT_ASM_OP. Yes, the name of the macro is
misleading. */
#ifndef INT_ASM_OP
#define INT_ASM_OP "\t.long\t"
#endif
/* This is the pseudo-op used to generate a contiguous sequence of byte /* This is the pseudo-op used to generate a contiguous sequence of byte
values from a double-quoted string WITHOUT HAVING A TERMINATING NUL values from a double-quoted string WITHOUT HAVING A TERMINATING NUL
AUTOMATICALLY APPENDED. This is the same for most svr4 assemblers. */ AUTOMATICALLY APPENDED. This is the same for most svr4 assemblers. */
......
...@@ -53,10 +53,6 @@ Boston, MA 02111-1307, USA. */ ...@@ -53,10 +53,6 @@ Boston, MA 02111-1307, USA. */
#undef IDENT_ASM_OP #undef IDENT_ASM_OP
#define IDENT_ASM_OP "\t.ident\t" #define IDENT_ASM_OP "\t.ident\t"
/* Define the name of the .int op. */
#undef INT_ASM_OP
#define INT_ASM_OP "\t.long\t"
/* Enable alias attribute support. */ /* Enable alias attribute support. */
#ifndef SET_ASM_OP #ifndef SET_ASM_OP
#define SET_ASM_OP "\t.set\t" #define SET_ASM_OP "\t.set\t"
......
...@@ -5212,11 +5212,11 @@ i386_dwarf_output_addr_const (file, x) ...@@ -5212,11 +5212,11 @@ i386_dwarf_output_addr_const (file, x)
rtx x; rtx x;
{ {
#ifdef ASM_QUAD #ifdef ASM_QUAD
fprintf (file, "%s", TARGET_64BIT ? ASM_QUAD : INT_ASM_OP); fprintf (file, "%s", TARGET_64BIT ? ASM_QUAD : ASM_LONG);
#else #else
if (TARGET_64BIT) if (TARGET_64BIT)
abort (); abort ();
fprintf (file, "%s", INT_ASM_OP); fprintf (file, "%s", ASM_LONG);
#endif #endif
if (flag_pic) if (flag_pic)
output_pic_addr_const (file, x, '\0'); output_pic_addr_const (file, x, '\0');
......
...@@ -2969,7 +2969,6 @@ do { long l; \ ...@@ -2969,7 +2969,6 @@ do { long l; \
degenerate to the macros used above. */ degenerate to the macros used above. */
#define UNALIGNED_SHORT_ASM_OP ASM_SHORT #define UNALIGNED_SHORT_ASM_OP ASM_SHORT
#define UNALIGNED_INT_ASM_OP ASM_LONG #define UNALIGNED_INT_ASM_OP ASM_LONG
#define INT_ASM_OP ASM_LONG
/* This is how to output an assembler line for a numeric constant byte. */ /* This is how to output an assembler line for a numeric constant byte. */
......
...@@ -50,9 +50,6 @@ Boston, MA 02111-1307, USA. */ ...@@ -50,9 +50,6 @@ Boston, MA 02111-1307, USA. */
#undef LOCAL_ASM_OP #undef LOCAL_ASM_OP
#define LOCAL_ASM_OP "\t.local\t" #define LOCAL_ASM_OP "\t.local\t"
#undef INT_ASM_OP
#define INT_ASM_OP "\t.long\t"
#undef ASM_SHORT #undef ASM_SHORT
#define ASM_SHORT "\t.value\t" #define ASM_SHORT "\t.value\t"
......
/* Definitions for Intel 386 running SCO Unix System V,
using dbx-in-coff encapsulation.
Copyright (C) 1992, 1995, 1996, 1999 Free Software Foundation, Inc.
This file is part of GNU CC.
GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "i386/svr3dbx.h"
/* Overridden defines for SCO systems from sco.h. */
/* By default, target has a 80387, uses IEEE compatible arithmetic,
and returns float values in the 387, ie,
(TARGET_80387 | TARGET_FLOAT_RETURNS_IN_80387)
SCO's software emulation of a 387 fails to handle the `fucomp'
opcode. fucomp is only used when generating IEEE compliant code.
So don't make TARGET_IEEE_FP default for SCO. */
#undef TARGET_SUBTARGET_DEFAULT
#define TARGET_SUBTARGET_DEFAULT (MASK_80387 | MASK_FLOAT_RETURNS)
/* Use crt1.o as a startup file and crtn.o as a closing file. */
#undef STARTFILE_SPEC
#define STARTFILE_SPEC \
"%{!r:%{!z:svr3.ifile%s}%{z:svr3z.ifile%s}}\
%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}}"
/* Library spec, including SCO international language support. */
#undef LIB_SPEC
#define LIB_SPEC \
"%{p:-L/usr/lib/libp}%{pg:-L/usr/lib/libp} %{scointl:libintl.a%s} -lc"
/* Specify predefined symbols in preprocessor. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-Dunix -DM_UNIX -DM_I386 -DM_COFF -DM_WORDSWAP -Asystem=svr3"
#undef CPP_SPEC
#define CPP_SPEC "%(cpp_cpu) %{scointl:-DM_INTERNAT}"
/* This spec is used for telling cpp whether char is signed or not. */
#undef SIGNED_CHAR_SPEC
#if DEFAULT_SIGNED_CHAR
#define SIGNED_CHAR_SPEC \
"%{funsigned-char:-D__CHAR_UNSIGNED__ -D_CHAR_UNSIGNED}"
#else
#define SIGNED_CHAR_SPEC \
"%{!fsigned-char:-D__CHAR_UNSIGNED__ -D_CHAR_UNSIGNED}"
#endif
/* caller has to pop the extra argument passed to functions that return
structures. */
#undef RETURN_POPS_ARGS
#define RETURN_POPS_ARGS(FUNDECL,FUNTYPE,SIZE) \
((FUNDECL) && TREE_CODE (FUNDECL) == IDENTIFIER_NODE ? 0 \
: (TARGET_RTD \
&& (TYPE_ARG_TYPES (FUNTYPE) == 0 \
|| (TREE_VALUE (tree_last (TYPE_ARG_TYPES (FUNTYPE))) \
== void_type_node))) ? (SIZE) \
: 0)
/* On other 386 systems, the last line looks like this:
: (aggregate_value_p (TREE_TYPE (FUNTYPE))) ? GET_MODE_SIZE (Pmode) : 0) */
/* Handle #pragma pack. */
#define HANDLE_SYSV_PRAGMA
...@@ -41,6 +41,4 @@ Boston, MA 02111-1307, USA. */ ...@@ -41,6 +41,4 @@ Boston, MA 02111-1307, USA. */
#define CTORS_SECTION_ASM_OP "\t.section\t.ctors,\"x\"" #define CTORS_SECTION_ASM_OP "\t.section\t.ctors,\"x\""
#define DTORS_SECTION_ASM_OP "\t.section\t.dtors,\"x\"" #define DTORS_SECTION_ASM_OP "\t.section\t.dtors,\"x\""
#define INT_ASM_OP "\t.word\t"
/* end of i960-coff.h */ /* end of i960-coff.h */
...@@ -140,8 +140,6 @@ do { \ ...@@ -140,8 +140,6 @@ do { \
#undef DTORS_SECTION_ASM_OP #undef DTORS_SECTION_ASM_OP
#define DTORS_SECTION_ASM_OP "\t.section\t.dtors" #define DTORS_SECTION_ASM_OP "\t.section\t.dtors"
#define INT_ASM_OP "\t.long\t"
#undef DO_GLOBAL_CTORS_BODY #undef DO_GLOBAL_CTORS_BODY
#undef DO_GLOBAL_DTORS_BODY #undef DO_GLOBAL_DTORS_BODY
......
...@@ -1570,15 +1570,6 @@ do { \ ...@@ -1570,15 +1570,6 @@ do { \
/* Output before uninitialized data. */ /* Output before uninitialized data. */
#define BSS_SECTION_ASM_OP ("\t.sect\t.bss") #define BSS_SECTION_ASM_OP ("\t.sect\t.bss")
/* This is the pseudo-op used to generate a reference to a specific
symbol in some section. It is only used in machine-specific
configuration files. This is the same for all known svr4
assemblers, except those in targets that don't use 32-bit pointers.
Those should override INT_ASM_OP. Yes, the name of the macro is
misleading. */
#undef INT_ASM_OP
#define INT_ASM_OP "\t.word\t"
/* Define the pseudo-ops used to switch to the .ctors and .dtors sections. /* Define the pseudo-ops used to switch to the .ctors and .dtors sections.
Same as config/elfos.h but don't mark these section SHF_WRITE since Same as config/elfos.h but don't mark these section SHF_WRITE since
......
...@@ -104,8 +104,6 @@ Boston, MA 02111-1307, USA. */ ...@@ -104,8 +104,6 @@ Boston, MA 02111-1307, USA. */
#undef TARGET_ASM_NAMED_SECTION #undef TARGET_ASM_NAMED_SECTION
#define TARGET_ASM_NAMED_SECTION m68k_coff_asm_named_section #define TARGET_ASM_NAMED_SECTION m68k_coff_asm_named_section
#define INT_ASM_OP "\t.long\t"
/* Don't assume anything about startfiles. */ /* Don't assume anything about startfiles. */
#undef STARTFILE_SPEC #undef STARTFILE_SPEC
......
...@@ -2367,7 +2367,7 @@ output_tdesc (file, offset) ...@@ -2367,7 +2367,7 @@ output_tdesc (file, offset)
tdesc_section (); tdesc_section ();
fprintf (file, "%s%d,%d", INT_ASM_OP, /* 8:0,22:(20 or 16),2:2 */ fprintf (file, "%s%d,%d", ASM_LONG, /* 8:0,22:(20 or 16),2:2 */
(((xmask != 0) ? 20 : 16) << 2) | 2, (((xmask != 0) ? 20 : 16) << 2) | 2,
flag_pic ? 2 : 1); flag_pic ? 2 : 1);
......
...@@ -1651,7 +1651,6 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS, ...@@ -1651,7 +1651,6 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS,
#define ASM_COMMENT_START ";" #define ASM_COMMENT_START ";"
/* Allow pseudo-ops to be overridden. Override these in svr[34].h. */ /* Allow pseudo-ops to be overridden. Override these in svr[34].h. */
#undef INT_ASM_OP
#undef ASCII_DATA_ASM_OP #undef ASCII_DATA_ASM_OP
#undef CONST_SECTION_ASM_OP #undef CONST_SECTION_ASM_OP
#undef CTORS_SECTION_ASM_OP #undef CTORS_SECTION_ASM_OP
...@@ -1697,8 +1696,7 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS, ...@@ -1697,8 +1696,7 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS,
#define BSS_ASM_OP "\tbss\t" #define BSS_ASM_OP "\tbss\t"
#define FLOAT_ASM_OP "\tfloat\t" #define FLOAT_ASM_OP "\tfloat\t"
#define DOUBLE_ASM_OP "\tdouble\t" #define DOUBLE_ASM_OP "\tdouble\t"
#define INT_ASM_OP "\tword\t" #define ASM_LONG "\tword\t"
#define ASM_LONG INT_ASM_OP
#define SHORT_ASM_OP "\thalf\t" #define SHORT_ASM_OP "\thalf\t"
#define CHAR_ASM_OP "\tbyte\t" #define CHAR_ASM_OP "\tbyte\t"
#define ASCII_DATA_ASM_OP "\tstring\t" #define ASCII_DATA_ASM_OP "\tstring\t"
...@@ -2049,7 +2047,7 @@ do { \ ...@@ -2049,7 +2047,7 @@ do { \
do { \ do { \
union { REAL_VALUE_TYPE d; long l[2]; } x; \ union { REAL_VALUE_TYPE d; long l[2]; } x; \
x.d = (VALUE); \ x.d = (VALUE); \
fprintf (FILE, "%s0x%.8lx, 0x%.8lx\n", INT_ASM_OP, \ fprintf (FILE, "%s0x%.8lx, 0x%.8lx\n", ASM_LONG, \
(long) x.l[0], (long) x.l[1]); \ (long) x.l[0], (long) x.l[1]); \
} while (0) } while (0)
...@@ -2058,12 +2056,12 @@ do { \ ...@@ -2058,12 +2056,12 @@ do { \
do { \ do { \
int i; \ int i; \
FLOAT_TO_INT_INTERNAL (VALUE, i); \ FLOAT_TO_INT_INTERNAL (VALUE, i); \
fprintf (FILE, "%s0x%.8x\n", INT_ASM_OP, i); \ fprintf (FILE, "%s0x%.8x\n", ASM_LONG, i); \
} while (0) } while (0)
/* Likewise for `int', `short', and `char' constants. */ /* Likewise for `int', `short', and `char' constants. */
#define ASM_OUTPUT_INT(FILE,VALUE) \ #define ASM_OUTPUT_INT(FILE,VALUE) \
( fprintf (FILE, "%s", INT_ASM_OP), \ ( fprintf (FILE, "%s", ASM_LONG), \
output_addr_const (FILE, (VALUE)), \ output_addr_const (FILE, (VALUE)), \
fprintf (FILE, "\n")) fprintf (FILE, "\n"))
......
...@@ -183,8 +183,6 @@ rdata_section () \ ...@@ -183,8 +183,6 @@ rdata_section () \
#define STARTFILE_SPEC "crt0.o%s" #define STARTFILE_SPEC "crt0.o%s"
#define ENDFILE_SPEC "%{!mno-lsim:-lsim}" #define ENDFILE_SPEC "%{!mno-lsim:-lsim}"
#define INT_ASM_OP "\t.long\t"
/* __CTOR_LIST__ and __DTOR_LIST__ must be defined by the linker script. */ /* __CTOR_LIST__ and __DTOR_LIST__ must be defined by the linker script. */
#define CTOR_LISTS_DEFINED_EXTERNALLY #define CTOR_LISTS_DEFINED_EXTERNALLY
......
...@@ -100,6 +100,3 @@ const_section () \ ...@@ -100,6 +100,3 @@ const_section () \
in_section = in_const; \ in_section = in_const; \
} \ } \
} }
#undef INT_ASM_OP
#define INT_ASM_OP ".long"
...@@ -180,8 +180,6 @@ do { \ ...@@ -180,8 +180,6 @@ do { \
DECL_SECTION_NAME (DECL) = build_string (len, string); \ DECL_SECTION_NAME (DECL) = build_string (len, string); \
} while (0) } while (0)
#define INT_ASM_OP "\t.dword\t"
/* Define the strings used for the special svr4 .type and .size directives. /* Define the strings used for the special svr4 .type and .size directives.
These strings generally do not vary from one system running svr4 to These strings generally do not vary from one system running svr4 to
another, but if a given system (e.g. m88k running svr) needs to use another, but if a given system (e.g. m88k running svr) needs to use
......
...@@ -59,9 +59,6 @@ Boston, MA 02111-1307, USA. */ ...@@ -59,9 +59,6 @@ Boston, MA 02111-1307, USA. */
%{static:-static}}}" %{static:-static}}}"
#endif #endif
#undef INT_ASM_OP
#define INT_ASM_OP "\t.quad\t"
#undef PROMOTE_PROTOTYPES #undef PROMOTE_PROTOTYPES
#undef MASK_RETURN_ADDR #undef MASK_RETURN_ADDR
#undef SELECT_SECTION #undef SELECT_SECTION
......
...@@ -1929,11 +1929,6 @@ while (0) ...@@ -1929,11 +1929,6 @@ while (0)
/* Switch into a generic section. */ /* Switch into a generic section. */
#define TARGET_ASM_NAMED_SECTION sh_asm_named_section #define TARGET_ASM_NAMED_SECTION sh_asm_named_section
/* This is the pseudo-op used to generate a reference to a specific
symbol in some section. */
#define INT_ASM_OP "\t.long\t"
#undef DO_GLOBAL_CTORS_BODY #undef DO_GLOBAL_CTORS_BODY
#define DO_GLOBAL_CTORS_BODY \ #define DO_GLOBAL_CTORS_BODY \
{ \ { \
......
...@@ -44,8 +44,6 @@ Boston, MA 02111-1307, USA. */ ...@@ -44,8 +44,6 @@ Boston, MA 02111-1307, USA. */
#define EXTRA_SECTION_FUNCTIONS \ #define EXTRA_SECTION_FUNCTIONS \
CONST_SECTION_FUNCTION CONST_SECTION_FUNCTION
#define INT_ASM_OP "\t.long\t"
#undef DO_GLOBAL_CTORS_BODY #undef DO_GLOBAL_CTORS_BODY
#undef DO_GLOBAL_DTORS_BODY #undef DO_GLOBAL_DTORS_BODY
......
...@@ -11853,6 +11853,9 @@ dwarf2out_finish (input_filename) ...@@ -11853,6 +11853,9 @@ dwarf2out_finish (input_filename)
add_child_die (origin->die_parent, die); add_child_die (origin->die_parent, die);
else if (die == comp_unit_die) else if (die == comp_unit_die)
; ;
else if (errorcount > 0 || sorrycount > 0)
/* It's OK to be confused by errors in the input. */
add_child_die (comp_unit_die, die);
else else
abort (); abort ();
} }
......
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