https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119657

            Bug ID: 119657
           Summary: GCC 15 fails with unknown pseudo-op .base64 error on
                    std::println with special char as last letter
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: igor.machado at gmail dot com
  Target Milestone: ---

Hi all, I was trying g++-15 today on Ubuntu 24.04:
$ g++-15 --version
g++-15 (Ubuntu 15-20250329-1ubuntu1) 15.0.1 20250329 (experimental) [master
r15-9023-g8ad8f749729]

It fails when std::println adds special char as the last letter... I was trying
`std::println("{}", "Hello World")` and it's fine, as expected. When using
Portuguese text "Olá Mundo", it also works, but when only "Olá" is passed, then
it breaks with unknown pseudo-op .base64:

```
#include <print>
int main() {
  std::println("{}", "Olá");
  return 0;
}
```

g++-15 --std=c++23 test.cpp 
/tmp/ccnYLGG9.s: Assembler messages:
/tmp/ccnYLGG9.s:7245: Error: unknown pseudo-op: `.base64'

When using string Olá with a single space after, it also breaks:
`std::println("{}", "Olá ");`

But with two spaces after, it works fine:
`std::println("{}", "Olá  ");`

If I quote it with TWO spaces, it works:
`std::println("'{}'", "Olá  ");`

Output is: $ ./a.out 
'Olá  '

But with THREE to FOUR spaces, it still breaks... then, with FIVE spaces after,
it works again:
`std::println("'{}'", "Olá     ");`

$ ./a.out 
'Olá     '

In short, something is strange with std::println on g++-15. Thanks in advance!

Reply via email to