Fixes a regression in handling Objective-C++ strings.
Tested on x86_64-darwin21, OK for trunk?
thanks
Iain

--- 8< --- 

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 <i...@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 fb6b2b18e94..79bc74fa2b7 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 */
-- 
2.39.2 (Apple Git-143)

Reply via email to