From b5d0cdc9c899a6046c01c1e9e3f19bb5ca08e67f Mon Sep 17 00:00:00 2001
From: Richard Biener <rguenther@suse.de>
Date: Wed, 24 Oct 2018 13:49:47 +0000
Subject: [PATCH] Return hash of ADDR_EXPR if its argument is CONSTANT_CLASS_P.

2018-10-24  Richard Biener  <rguenther@suse.de>

	* varasm.c (const_hash_1): Return hash of ADDR_EXPR
	if its argument is CONSTANT_CLASS_P.

From-SVN: r265462
---
 gcc/ChangeLog | 5 +++++
 gcc/varasm.c  | 4 ++++
 2 files changed, 9 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 582d65a9c4a9..270726a37306 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2018-10-24  Richard Biener  <rguenther@suse.de>
+
+	* varasm.c (const_hash_1): Return hash of ADDR_EXPR
+	if its argument is CONSTANT_CLASS_P.
+
 2018-10-11  Jan Hubicka  <hubicka@ucw.cz>
 
 	* ipa-utils.h (type_with_linkage_p): No longer check for TYPE_STUB_DECL;
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 06f41d002fd1..545e13fef6aa 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -3051,6 +3051,10 @@ const_hash_1 (const tree exp)
       }
 
     case ADDR_EXPR:
+      if (CONSTANT_CLASS_P (TREE_OPERAND (exp, 0)))
+       return const_hash_1 (TREE_OPERAND (exp, 0));
+
+      /* Fallthru.  */
     case FDESC_EXPR:
       {
 	struct addr_const value;
-- 
GitLab