Hi,
r220674 exposed a bug in ia64_in_small_data_p. After r220674, COMMON
symbols binds locally for executables. But ia64_in_small_data_p returns
true for COMMON symbols which are never in small data section. This patch
fixes it. OK for trunk?
H.J.
----
Since COMMON symbols are never in small data section, ia64_in_small_data_p
should return false for COMMON symbols.
PR target/65064
* config/ia64/ia64.c (ia64_in_small_data_p): Return false for
COMMON symbols.
---
gcc/config/ia64/ia64.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 6ef22d9..3687289 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -9941,6 +9941,10 @@ ia64_in_small_data_p (const_tree exp)
if (TARGET_NO_SDATA)
return false;
+ /* COMMON symbols are never small data. */
+ if (DECL_COMMON (exp))
+ return false;
+
/* We want to merge strings, so we never consider them small data. */
if (TREE_CODE (exp) == STRING_CST)
return false;
--
2.1.0