On 1/30/25 3:19 AM, Iain Sandoe wrote:
Fixes a regression in handling Objective-C++ strings.
Tested on x86_64-darwin21, OK for trunk?

OK.

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 */

Reply via email to