------- Comment #21 from hjl dot tools at gmail dot com  2009-03-15 17:37 
-------
(In reply to comment #19)

> 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);
> 

Since revision 144529:

http://gcc.gnu.org/ml/gcc-patches/2009-03/msg00000.html

is the cause and it is inline related, I suggest you use revision
144529 as base and revert the tree-inline.c change to see if it fixes
libcpp/expr.c.


-- 

hjl dot tools at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.4 Regression] ICE at     |[4.4 Regression] Revision
                   |dwarf2out.c:10353 in        |144529 miscompiled
                   |loc_descriptor_from_tree_1  |libcpp/expr.c


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39355

Reply via email to