From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id k+WPEIZJfWpE/SEAWB0awg (envelope-from ) for ; Thu, 13 Aug 2026 00:35:18 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=gnu.org header.i=@gnu.org header.a=rsa-sha256 header.s=fencepost-gnu-org header.b=X8vdNRnB; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 3123F1E033; Thu, 13 Aug 2026 00:35:18 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-6.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 6F70E1E033 for ; Thu, 13 Aug 2026 00:35:16 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7318C4BA798B for ; Thu, 13 Aug 2026 04:35:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7318C4BA798B Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gnu.org header.i=@gnu.org header.a=rsa-sha256 header.s=fencepost-gnu-org header.b=X8vdNRnB Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id 77FD74BA7982 for ; Thu, 13 Aug 2026 04:34:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 77FD74BA7982 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gnu.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gnu.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 77FD74BA7982 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2001:470:142:3::10 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1786595685; cv=none; b=Yj8rkdLVz4N8eAAwY+Lr+Oy+6AVmakF9d2tAoLtmoHfERPe2JK9kpiFnEPmQ0ruOwpM4FclNtJz3PHRUL25UExeQEwqFvooZ99K8jSPZNZRCBOMHwifaf4B8bI2z+2zhY/B/5gxobihRl1DzI+u4AYR3C/14k8zL2w1LAaAfxS0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1786595685; c=relaxed/simple; bh=Afsif89N8ZoRlT4e//ztuAvR9KyX+KpW+NUksXqm314=; h=DKIM-Signature:Date:Message-Id:From:To:Subject:MIME-version; b=aa9/mE+dQ4xob+gqnXNiZKSe0s3e0vILFx3xOvtYCWs+6xfsUVaspeKPSeNA/7+YBolgzXwsByDt73zIL8FfWAd1catCKn9qU7eyYvGTzxqlzeGbFsS8k8MJn+qZkmoSvCvf0Sp2X4AeXm1F7ctuK2jx7e1rr6NZc/H/agx5X+Q= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gnu.org header.i=@gnu.org header.a=rsa-sha256 header.s=fencepost-gnu-org header.b=X8vdNRnB DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 77FD74BA7982 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wuN9P-0008Hk-KF; Thu, 13 Aug 2026 00:34:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=//ODVN1VqQqMB268IqNHTukJXi9BXklmI868qcSY6Aw=; b=X8vdNRnBt6FG37WNcXgV Os+yZOlsxrQONTUqYfIX0Oy5JmCjIoXHeBS+0+nxbEyJi4AIExd0YKPTrnp/nQCDJV0PQZ0NB1EDe wmAzF54nVcA0pEIYA6leSptg/yQy8TR/hpBjZCye/btTJsv/piwpxFM5ZuI1I8Va9Dc9ly+q1XuAl y9e17BgrzkREJO0E/8N4DdV8QqwPL7nwNVch54gpiY3Gq1YdV2EVxsi6AHk0+ChRde6tT7ji+ZcTB EtxJtOywfdtB7H+vI+8Hnkm0KFJnHqaFZ4ljzfHf/jhr42crcQffaes1WgYt43px/z6L1XVe21ZNe eHE5BohOHUOeYg==; Date: Thu, 13 Aug 2026 07:34:40 +0300 Message-Id: <86cxvmaba7.fsf@gnu.org> From: Eli Zaretskii To: Tom de Vries Cc: gdb-patches@sourceware.org In-Reply-To: <20260813025445.237662-1-tdevries@suse.de> (message from Tom de Vries on Thu, 13 Aug 2026 04:54:45 +0200) Subject: Re: [PATCH] [gdb/build] Fix cli/cli-style.c build error with C++20 References: <20260813025445.237662-1-tdevries@suse.de> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org > From: Tom de Vries > Date: Thu, 13 Aug 2026 04:54:45 +0200 > > PR build/34514 reports for a C++20 build: > ... > cli/cli-style.c:457:37: error: conversion from ‘const char8_t [8]’ to \ > non-scalar type ‘std::string’ {aka ‘std::__cxx11::basic_string’} \ > requested > 457 | static std::string warning_prefix = u8"\u26A0\uFE0F "; > | ^~~~~~~~~~~~~~~~~ > ... > > The u8 literal is char[] until C++20, but char8_t[] since C++20. > > Fix this by using a reinterpret_cast. > > Tested by rebuilding using GCC 15.3.0, with and without -std=c++20. > > Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=34514 > --- > gdb/cli/cli-style.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/gdb/cli/cli-style.c b/gdb/cli/cli-style.c > index 60c00acdf43..5c26519c6d7 100644 > --- a/gdb/cli/cli-style.c > +++ b/gdb/cli/cli-style.c > @@ -454,7 +454,8 @@ no_emojis () > - uFE0F: Variation Selector-16 (VS16) > The VS16 forces "Emoji" presentation. It is needed because the default > presentation for Warning Sign is "Text". Together, we get: ⚠️ . */ > -static std::string warning_prefix = u8"\u26A0\uFE0F "; > +static std::string warning_prefix > + = reinterpret_cast (u8"\u26A0\uFE0F "); > > /* Implement 'show style warning-prefix'. */ > > @@ -479,7 +480,8 @@ print_warning_prefix (ui_file *file) > - u274C: Cross Mark: ❌ > No VS16 is needed because the default presentation for Cross Mark is > "Emoji". */ > -static std::string error_prefix = u8"\u274C "; > +static std::string error_prefix > + = reinterpret_cast (u8"\u274C "); Thanks. May I suggest to add comments here explaining why we use reinterpret_cast? The situation with the various C++ standards changes with time, as we require newer versions of the standard, so at some point this will no longer be needed. And use of reinterpret_cast is unusual enough to raise some brows anyway.