aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@cygnus.co.uk>1999-11-29 18:11:35 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>1999-11-29 18:11:35 +0000
commitd0f89bfce0ad403ff763b9beb51f5fbb76701639 (patch)
treeeda08ea25cd7c8200a55835fd185e2d8e8c50de0 /gcc
parent37feda7d7656a82a99f0492b4a52b14fe3db10ec (diff)
downloadgcc-d0f89bfce0ad403ff763b9beb51f5fbb76701639.zip
gcc-d0f89bfce0ad403ff763b9beb51f5fbb76701639.tar.gz
gcc-d0f89bfce0ad403ff763b9beb51f5fbb76701639.tar.bz2
Fix for gcc.c-torture/noncompile/920824-1.c on SH (and mips?)
Fix for gcc.c-torture/noncompile/920824-1.c on SH (and mips?) * dwarfout.c (field_byte_offset): Size can be zero if there was an error. From-SVN: r30708
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/dwarfout.c9
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 07811cb..afd4fc9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Mon Nov 29 18:09:39 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * dwarfout.c (field_byte_offset): Size can be zero if there was
+ an error.
+
1999-11-29 Bernd Schmidt <bernds@cygnus.co.uk>
* fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
diff --git a/gcc/dwarfout.c b/gcc/dwarfout.c
index d8ddfb0..1df09c6 100644
--- a/gcc/dwarfout.c
+++ b/gcc/dwarfout.c
@@ -2024,6 +2024,15 @@ field_byte_offset (decl)
bitpos_tree = DECL_FIELD_BITPOS (decl);
field_size_tree = DECL_SIZE (decl);
+ /* If there was an error, the size could be zero. */
+ if (! field_size_tree)
+ {
+ if (errorcount)
+ return 0;
+ abort ();
+ }
+
+
/* We cannot yet cope with fields whose positions or sizes are variable,
so for now, when we see such things, we simply return 0. Someday,
we may be able to handle such cases, but it will be damn difficult. */