The attached change fixes a segmentation fault bootstrapping GCC on hppa2.0-hp-hpux11.11. The length of long non-pic millicode calls does not depend on TARGET_LONG_ABS_CALL. As a result, the length of long non-pic millicode calls was being overestimated.

This broke the millicode call to $$sh_func_adrs. It has a couple of branches that branch past
the call when a call isn't needed.

Tested on hppa2.0w-hp-hpux11.11 and hppa-unknown-linux-gnu. Committed to active branches.

Dave
--
John David Anglin       dave.ang...@bell.net


2014-01-19  John David Anglin  <dang...@gcc.gnu.org>

        * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
        long non-pic millicode calls.

Index: config/pa/pa.c
===================================================================
--- config/pa/pa.c      (revision 206767)
+++ config/pa/pa.c      (working copy)
@@ -7534,7 +7528,7 @@
       if (!TARGET_LONG_CALLS && distance < MAX_PCREL17F_OFFSET)
        return 8;
 
-      if (TARGET_LONG_ABS_CALL && !flag_pic)
+      if (!flag_pic)
        return 12;
 
       return 24;

Reply via email to