[Bug debug/39355] [4.4 Regression] ICE at dwarf2out.c:10353 in loc_descriptor_from_tree_1
dave at hiauly1 dot hia dot nrc dot ca
gcc-bugzilla@gcc.gnu.org
Sat Mar 14 21:31:00 GMT 2009
------- Comment #19 from dave at hiauly1 dot hia dot nrc dot ca 2009-03-14 21:31 -------
Subject: Re: [4.4 Regression] ICE at dwarf2out.c:10353 in
loc_descriptor_from_tree_1
On Tue, 10 Mar 2009, jakub at gcc dot gnu dot org wrote:
> You can start with trying if -O2 -fno-inline -fno-inline-small-functions is
> still miscompiled and if -O0 works, then you can add
> __attribute__((__optimized__([02]))) to suspected functions.
-O2 -fno-inline -fno-inline-small-functions and -O0 both work. However,
I couldn't get the attribute to work, or find any documentation for it.
I did find that the ICE doesn't occur with the following change to
libcpp/expr.c:
Index: expr.c
===================================================================
--- expr.c (revision 144529)
+++ expr.c (working copy)
@@ -39,7 +39,7 @@
/* Some simple utility routines on double integers. */
#define num_zerop(num) ((num.low | num.high) == 0)
#define num_eq(num1, num2) (num1.low == num2.low && num1.high == num2.high)
-static bool num_positive (cpp_num, size_t);
+static bool num_positive (cpp_num, size_t) __attribute__((noinline));
static bool num_greater_eq (cpp_num, cpp_num, size_t);
static cpp_num num_trim (cpp_num, size_t);
static cpp_num num_part_mul (cpp_num_part, cpp_num_part);
So, it seems quite likely that this is a shift issue.
Dave
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39355
More information about the Gcc-bugs
mailing list