Bug 2127993 - wstring-constructor of std::filesystem::path throws for non-ASCII characters
Summary: wstring-constructor of std::filesystem::path throws for non-ASCII characters
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: gcc
Version: 8.6
Hardware: x86_64
OS: Linux
high
high
Target Milestone: rc
: ---
Assignee: Marek Polacek
QA Contact: Václav Kadlčík
URL:
Whiteboard:
Depends On:
Blocks: 2221740 2221763
TreeView+ depends on / blocked
 
Reported: 2022-09-19 14:34 UTC by Andrew Mike
Modified: 2023-07-10 17:31 UTC (History)
12 users (show)

Fixed In Version: gcc-toolset-12-gcc-12.2.1-4.el8
Doc Type: No Doc Update
Doc Text:
Clone Of:
: 2221740 (view as bug list)
Environment:
Last Closed: 2023-05-16 08:25:42 UTC
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
test source file (871 bytes, text/x-csrc)
2022-09-19 14:34 UTC, Andrew Mike
no flags Details


Links
System ID Private Priority Status Summary Last Updated
GNU Compiler Collection 95048 0 P2 ASSIGNED [10/11 Regression] wstring-constructor of std::filesystem::path throws for non-ASCII characters 2022-11-14 18:52:59 UTC
Red Hat Issue Tracker RHELPLAN-134332 0 None None None 2022-09-19 14:41:16 UTC
Red Hat Product Errata RHBA-2023:2766 0 None None None 2023-05-16 08:26:07 UTC

Description Andrew Mike 2022-09-19 14:34:25 UTC
Created attachment 1912951 [details]
test source file

Description of problem: When

Version-Release number of selected component (if applicable):
gcc-toolset-11-11.1-1.el8.x86_64

How reproducible: 100%

Steps to Reproduce:
1. Install gcc-toolset-11 package.
2. Run compilation with test file: "scl enable gcc-toolset-11 'g++ -o char_test char_test.cpp"
3. Run the char_test binary.

Actual results:
UTF-8
UTF-32LE
Dir1/猫.txt
Build from char multibyte string
Build from wchar_t string
terminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error'
  what():  filesystem error: Cannot convert character sequence: Invalid or incomplete multibyte or wide character
Aborted (core dumped)

Expected results:
UTF-8
UTF-32LE
Dir1/猫.txt
Build from char multibyte string
Build from wchar_t string

Additional info:
- This was illustrated in upstream GCC bug 95048.

Comment 2 Marek Polacek 2022-09-19 17:22:47 UTC
The upstream PR hasn't been fixed yet, so there's nothing to backport at this time.  Let's track this upstream
in https://gcc.gnu.org/PR95048.

Comment 5 Marek Polacek 2022-10-19 14:59:05 UTC
The upstream bug hasn't been fixed yet.

Comment 6 Marek Polacek 2022-10-24 16:08:10 UTC
There's now a patch: https://gcc.gnu.org/pipermail/gcc-patches/2022-October/603871.html

Comment 7 Marek Polacek 2022-10-31 16:08:50 UTC
The patch hasn't been reviewed yet but there's a chance we could fix this in GTS 12.1.

Comment 8 Marek Polacek 2022-11-14 16:55:37 UTC
Patch backported to upstream gcc 12.

Comment 9 Marek Polacek 2022-11-14 18:53:13 UTC
(In reply to Marek Polacek from comment #8)
> Patch backported to upstream gcc 12.

https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=c6bd8fac5e3bc6003f889fbd6042c0d8aa9c40ed

Comment 18 errata-xmlrpc 2023-05-16 08:25:42 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (gcc-toolset-12-gcc bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2023:2766


Note You need to log in before you can comment on or make changes to this bug.