summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-07 03:28:13 +0000
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-07 03:28:13 +0000
commit489fc1bc045a742f6aecc20f95db25ccd5fce294 (patch)
tree1249d5d3485455373cef4061fd3e55ab220027f8 /gcc
parent2431fed3c00a103afada5dc878826333d391410b (diff)
downloadgcc-489fc1bc045a742f6aecc20f95db25ccd5fce294.tar.gz
* config/ia64/hpux.h (LINK_SPEC): Add -z.
* config/ia64/ia64.c (ia64_function_value): Return a REG not a PARALLEL for an empty structure. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96004 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/ia64/hpux.h2
-rw-r--r--gcc/config/ia64/ia64.c4
3 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 451b7a2acfe..2ca5db6c12c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-03-07 Joseph S. Myers <joseph@codesourcery.com>
+
+ * config/ia64/hpux.h (LINK_SPEC): Add -z.
+ * config/ia64/ia64.c (ia64_function_value): Return a REG not a
+ PARALLEL for an empty structure.
+
2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
* fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
diff --git a/gcc/config/ia64/hpux.h b/gcc/config/ia64/hpux.h
index 5b4f0470f08..1618eb892b0 100644
--- a/gcc/config/ia64/hpux.h
+++ b/gcc/config/ia64/hpux.h
@@ -75,7 +75,7 @@ do { \
#undef LINK_SPEC
#define LINK_SPEC \
- "+Accept TypeMismatch \
+ "-z +Accept TypeMismatch \
%{shared:-b} \
%{!shared: \
-u main \
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index d67bb1f9620..bca447ba91a 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -3915,6 +3915,10 @@ ia64_function_value (tree valtype, tree func ATTRIBUTE_UNUSED)
offset = 0;
bytesize = int_size_in_bytes (valtype);
+ /* An empty PARALLEL is invalid here, but the return value
+ doesn't matter for empty structs. */
+ if (bytesize == 0)
+ return gen_rtx_REG (mode, GR_RET_FIRST);
for (i = 0; offset < bytesize; i++)
{
loc[i] = gen_rtx_EXPR_LIST (VOIDmode,