summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog15
-rw-r--r--gcc/config/alpha/alpha-interix.h2
-rw-r--r--gcc/config/alpha/elf.h6
-rw-r--r--gcc/config/arm/coff.h2
-rw-r--r--gcc/config/elfos.h11
-rw-r--r--gcc/config/i386/djgpp.h4
-rw-r--r--gcc/config/i386/i386.c4
-rw-r--r--gcc/config/i386/i386.h1
-rw-r--r--gcc/config/i386/sco5.h3
-rw-r--r--gcc/config/i386/scodbx.h84
-rw-r--r--gcc/config/i960/i960-coff.h2
-rw-r--r--gcc/config/lynx.h2
-rw-r--r--gcc/config/m68hc11/m68hc11.h9
-rw-r--r--gcc/config/m68k/coff.h2
-rw-r--r--gcc/config/m88k/m88k.c2
-rw-r--r--gcc/config/m88k/m88k.h10
-rw-r--r--gcc/config/mcore/mcore-pe.h2
-rw-r--r--gcc/config/netware.h3
-rw-r--r--gcc/config/pa/pa64-hpux.h2
-rw-r--r--gcc/config/s390/linux64.h3
-rw-r--r--gcc/config/sh/sh.h5
-rw-r--r--gcc/config/sparc/litecoff.h2
-rw-r--r--gcc/dwarf2out.c3
23 files changed, 109 insertions, 70 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fa194a23ab2..3a97d8938e0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,18 @@
+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>
* gensupport.c process_include : Change call to alloca to
diff --git a/gcc/config/alpha/alpha-interix.h b/gcc/config/alpha/alpha-interix.h
index 788eac4f1c0..4dc21868dd4 100644
--- a/gcc/config/alpha/alpha-interix.h
+++ b/gcc/config/alpha/alpha-interix.h
@@ -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
ld -r (specifically -rU). */
#define CTOR_LISTS_DEFINED_EXTERNALLY 1
diff --git a/gcc/config/alpha/elf.h b/gcc/config/alpha/elf.h
index 4144c838376..7c882291672 100644
--- a/gcc/config/alpha/elf.h
+++ b/gcc/config/alpha/elf.h
@@ -165,12 +165,6 @@ do { \
ASM_OUTPUT_SKIP((FILE), (SIZE)); \
} 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
machine. Use this macro to limit the alignment which can be
specified using the `__attribute__ ((aligned (N)))' construct. If
diff --git a/gcc/config/arm/coff.h b/gcc/config/arm/coff.h
index db057b917a3..84ab1ed7f45 100644
--- a/gcc/config/arm/coff.h
+++ b/gcc/config/arm/coff.h
@@ -115,8 +115,6 @@ rdata_section () \
/* 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. */
#define CTOR_LISTS_DEFINED_EXTERNALLY
diff --git a/gcc/config/elfos.h b/gcc/config/elfos.h
index 5c64afbc1a6..e6b36a703d0 100644
--- a/gcc/config/elfos.h
+++ b/gcc/config/elfos.h
@@ -224,17 +224,6 @@ Boston, MA 02111-1307, USA. */
} \
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
values from a double-quoted string WITHOUT HAVING A TERMINATING NUL
AUTOMATICALLY APPENDED. This is the same for most svr4 assemblers. */
diff --git a/gcc/config/i386/djgpp.h b/gcc/config/i386/djgpp.h
index b17346a249e..edd0fc2bc7d 100644
--- a/gcc/config/i386/djgpp.h
+++ b/gcc/config/i386/djgpp.h
@@ -53,10 +53,6 @@ Boston, MA 02111-1307, USA. */
#undef IDENT_ASM_OP
#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. */
#ifndef SET_ASM_OP
#define SET_ASM_OP "\t.set\t"
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index db06683ffc5..fd60fd8e201 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -5212,11 +5212,11 @@ i386_dwarf_output_addr_const (file, x)
rtx x;
{
#ifdef ASM_QUAD
- fprintf (file, "%s", TARGET_64BIT ? ASM_QUAD : INT_ASM_OP);
+ fprintf (file, "%s", TARGET_64BIT ? ASM_QUAD : ASM_LONG);
#else
if (TARGET_64BIT)
abort ();
- fprintf (file, "%s", INT_ASM_OP);
+ fprintf (file, "%s", ASM_LONG);
#endif
if (flag_pic)
output_pic_addr_const (file, x, '\0');
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index be2af297930..3b2ce410336 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -2969,7 +2969,6 @@ do { long l; \
degenerate to the macros used above. */
#define UNALIGNED_SHORT_ASM_OP ASM_SHORT
#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. */
diff --git a/gcc/config/i386/sco5.h b/gcc/config/i386/sco5.h
index 000207c8df5..6bd6934b774 100644
--- a/gcc/config/i386/sco5.h
+++ b/gcc/config/i386/sco5.h
@@ -50,9 +50,6 @@ Boston, MA 02111-1307, USA. */
#undef LOCAL_ASM_OP
#define LOCAL_ASM_OP "\t.local\t"
-#undef INT_ASM_OP
-#define INT_ASM_OP "\t.long\t"
-
#undef ASM_SHORT
#define ASM_SHORT "\t.value\t"
diff --git a/gcc/config/i386/scodbx.h b/gcc/config/i386/scodbx.h
new file mode 100644
index 00000000000..7da93053256
--- /dev/null
+++ b/gcc/config/i386/scodbx.h
@@ -0,0 +1,84 @@
+/* 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
diff --git a/gcc/config/i960/i960-coff.h b/gcc/config/i960/i960-coff.h
index 7f462153a6c..47bcc8d7122 100644
--- a/gcc/config/i960/i960-coff.h
+++ b/gcc/config/i960/i960-coff.h
@@ -41,6 +41,4 @@ Boston, MA 02111-1307, USA. */
#define CTORS_SECTION_ASM_OP "\t.section\t.ctors,\"x\""
#define DTORS_SECTION_ASM_OP "\t.section\t.dtors,\"x\""
-#define INT_ASM_OP "\t.word\t"
-
/* end of i960-coff.h */
diff --git a/gcc/config/lynx.h b/gcc/config/lynx.h
index a0594d8a25e..012a701bc64 100644
--- a/gcc/config/lynx.h
+++ b/gcc/config/lynx.h
@@ -140,8 +140,6 @@ do { \
#undef DTORS_SECTION_ASM_OP
#define DTORS_SECTION_ASM_OP "\t.section\t.dtors"
-#define INT_ASM_OP "\t.long\t"
-
#undef DO_GLOBAL_CTORS_BODY
#undef DO_GLOBAL_DTORS_BODY
diff --git a/gcc/config/m68hc11/m68hc11.h b/gcc/config/m68hc11/m68hc11.h
index 211a65fc1a4..941763ceabb 100644
--- a/gcc/config/m68hc11/m68hc11.h
+++ b/gcc/config/m68hc11/m68hc11.h
@@ -1570,15 +1570,6 @@ do { \
/* Output before uninitialized data. */
#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.
Same as config/elfos.h but don't mark these section SHF_WRITE since
diff --git a/gcc/config/m68k/coff.h b/gcc/config/m68k/coff.h
index 946f1967e7f..9c677f0fada 100644
--- a/gcc/config/m68k/coff.h
+++ b/gcc/config/m68k/coff.h
@@ -104,8 +104,6 @@ Boston, MA 02111-1307, USA. */
#undef TARGET_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. */
#undef STARTFILE_SPEC
diff --git a/gcc/config/m88k/m88k.c b/gcc/config/m88k/m88k.c
index 4f596ad8b11..f4eb8dda532 100644
--- a/gcc/config/m88k/m88k.c
+++ b/gcc/config/m88k/m88k.c
@@ -2367,7 +2367,7 @@ output_tdesc (file, offset)
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,
flag_pic ? 2 : 1);
diff --git a/gcc/config/m88k/m88k.h b/gcc/config/m88k/m88k.h
index cee7096bc9d..b9ddd72bec6 100644
--- a/gcc/config/m88k/m88k.h
+++ b/gcc/config/m88k/m88k.h
@@ -1651,7 +1651,6 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS,
#define ASM_COMMENT_START ";"
/* Allow pseudo-ops to be overridden. Override these in svr[34].h. */
-#undef INT_ASM_OP
#undef ASCII_DATA_ASM_OP
#undef CONST_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,
#define BSS_ASM_OP "\tbss\t"
#define FLOAT_ASM_OP "\tfloat\t"
#define DOUBLE_ASM_OP "\tdouble\t"
-#define INT_ASM_OP "\tword\t"
-#define ASM_LONG INT_ASM_OP
+#define ASM_LONG "\tword\t"
#define SHORT_ASM_OP "\thalf\t"
#define CHAR_ASM_OP "\tbyte\t"
#define ASCII_DATA_ASM_OP "\tstring\t"
@@ -2049,7 +2047,7 @@ do { \
do { \
union { REAL_VALUE_TYPE d; long l[2]; } x; \
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]); \
} while (0)
@@ -2058,12 +2056,12 @@ do { \
do { \
int 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)
/* Likewise for `int', `short', and `char' constants. */
#define ASM_OUTPUT_INT(FILE,VALUE) \
-( fprintf (FILE, "%s", INT_ASM_OP), \
+( fprintf (FILE, "%s", ASM_LONG), \
output_addr_const (FILE, (VALUE)), \
fprintf (FILE, "\n"))
diff --git a/gcc/config/mcore/mcore-pe.h b/gcc/config/mcore/mcore-pe.h
index e08b337c194..067706c3f09 100644
--- a/gcc/config/mcore/mcore-pe.h
+++ b/gcc/config/mcore/mcore-pe.h
@@ -183,8 +183,6 @@ rdata_section () \
#define STARTFILE_SPEC "crt0.o%s"
#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. */
#define CTOR_LISTS_DEFINED_EXTERNALLY
diff --git a/gcc/config/netware.h b/gcc/config/netware.h
index 42b228556bf..129fa392179 100644
--- a/gcc/config/netware.h
+++ b/gcc/config/netware.h
@@ -100,6 +100,3 @@ const_section () \
in_section = in_const; \
} \
}
-
-#undef INT_ASM_OP
-#define INT_ASM_OP ".long"
diff --git a/gcc/config/pa/pa64-hpux.h b/gcc/config/pa/pa64-hpux.h
index ba421fcab4e..6445c9aa27e 100644
--- a/gcc/config/pa/pa64-hpux.h
+++ b/gcc/config/pa/pa64-hpux.h
@@ -180,8 +180,6 @@ do { \
DECL_SECTION_NAME (DECL) = build_string (len, string); \
} while (0)
-#define INT_ASM_OP "\t.dword\t"
-
/* Define the strings used for the special svr4 .type and .size directives.
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
diff --git a/gcc/config/s390/linux64.h b/gcc/config/s390/linux64.h
index d66bdaa7bd2..0fdd173cc3a 100644
--- a/gcc/config/s390/linux64.h
+++ b/gcc/config/s390/linux64.h
@@ -59,9 +59,6 @@ Boston, MA 02111-1307, USA. */
%{static:-static}}}"
#endif
-#undef INT_ASM_OP
-#define INT_ASM_OP "\t.quad\t"
-
#undef PROMOTE_PROTOTYPES
#undef MASK_RETURN_ADDR
#undef SELECT_SECTION
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index 80a3a36e4cb..cdb25c89ec2 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -1929,11 +1929,6 @@ while (0)
/* Switch into a generic 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
#define DO_GLOBAL_CTORS_BODY \
{ \
diff --git a/gcc/config/sparc/litecoff.h b/gcc/config/sparc/litecoff.h
index 4b08d3848a5..dede792e69b 100644
--- a/gcc/config/sparc/litecoff.h
+++ b/gcc/config/sparc/litecoff.h
@@ -44,8 +44,6 @@ Boston, MA 02111-1307, USA. */
#define EXTRA_SECTION_FUNCTIONS \
CONST_SECTION_FUNCTION
-#define INT_ASM_OP "\t.long\t"
-
#undef DO_GLOBAL_CTORS_BODY
#undef DO_GLOBAL_DTORS_BODY
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 80f16dbb6df..886b15bf806 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -11853,6 +11853,9 @@ dwarf2out_finish (input_filename)
add_child_die (origin->die_parent, 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
abort ();
}