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;