aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-06-17 07:15:25 +0000
committerRichard Stallman <rms@gnu.org>1993-06-17 07:15:25 +0000
commit78778b9db992d4a302c8385eec8503126012787b (patch)
tree8141943e8daccd75fdeabe053a8c0eb50099c1dd
parent4e75433b46caf9aeed38c79f54c336619b8dfb0f (diff)
downloadgcc-78778b9db992d4a302c8385eec8503126012787b.zip
gcc-78778b9db992d4a302c8385eec8503126012787b.tar.gz
gcc-78778b9db992d4a302c8385eec8503126012787b.tar.bz2
(LEGITIMATE_CONSTANT_P): Reject function addresses for now.
From-SVN: r4685
-rw-r--r--gcc/config/pa/pa.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 4b6315b..57a7fd3 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -1078,11 +1078,14 @@ extern union tree_node *current_function_decl;
&& (reload_in_progress || reload_completed || ! symbolic_expression_p (X)))
/* Include all constant integers and constant doubles, but not
- floating-point, except for floating-point zero. */
+ floating-point, except for floating-point zero.
+ Also reject function labels as reload can not handle them correctly
+ right now. (Fix this for 2.5). */
#define LEGITIMATE_CONSTANT_P(X) \
- (GET_MODE_CLASS (GET_MODE (X)) != MODE_FLOAT \
- || (X) == CONST0_RTX (GET_MODE (X)))
+ ((GET_MODE_CLASS (GET_MODE (X)) != MODE_FLOAT \
+ || (X) == CONST0_RTX (GET_MODE (X))) \
+ && ! function_label_operand (X, VOIDmode))
/* Subroutine for EXTRA_CONSTRAINT.