From c5667a1ee31518b1cd576c2f8e186d88bbf13f58 Mon Sep 17 00:00:00 2001
From: Iain Sandoe <iain@sandoe.co.uk>
Date: Wed, 29 Jan 2025 11:59:14 +0000
Subject: [PATCH] c++: Update const_decl handling after r15-7259 [PR118673].

Objective-C++ uses CONST_DECLs to hold constant string objects
these should also be treated as mergable lvalues.

	PR c++/118673

gcc/cp/ChangeLog:

	* tree.cc (lvalue_kind): Mark CONST_DECLs as mergable
	when they are also TREE_STATIC.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
---
 gcc/cp/tree.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc
index fb6b2b18e94f..79bc74fa2b7a 100644
--- a/gcc/cp/tree.cc
+++ b/gcc/cp/tree.cc
@@ -213,7 +213,7 @@ lvalue_kind (const_tree ref)
 	  && DECL_IN_AGGR_P (ref))
 	return clk_none;
 
-      if (DECL_MERGEABLE (ref))
+      if (TREE_CODE (ref) == CONST_DECL || DECL_MERGEABLE (ref))
 	return clk_ordinary | clk_mergeable;
 
       /* FALLTHRU */
-- 
GitLab