D issues are now tracked on GitHub. This Bugzilla instance remains as a read-only archive.
Issue 22806 - cppmangle: Complex real mangled incorrectly
Summary: cppmangle: Complex real mangled incorrectly
Status: RESOLVED FIXED
Alias: None
Product: D
Classification: Unclassified
Component: dmd (show other issues)
Version: D2
Hardware: PowerPC Linux
: P1 major
Assignee: No Owner
URL:
Keywords: pull
Depends on:
Blocks:
 
Reported: 2022-02-21 23:56 UTC by Iain Buclaw
Modified: 2022-02-22 11:40 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Iain Buclaw 2022-02-21 23:56:53 UTC
On PPC64, `real` could either be mapped to a C `long double` or a `__float128` type.

The former uses the IBM 128-bit, and is mangled as 'g', the latter is IEEE 128-bit, and is mangled as 'u9__ieee128'.

Both are not correctly accounted for in neither TypeEnum (special types), nor TypeBasic (complex types).
Comment 1 Dlang Bot 2022-02-22 10:25:09 UTC
@ibuclaw created dlang/dmd pull request #13702 "fix Issue 22806 - cppmangle: Complex real mangled incorrectly" fixing this issue:

- fix Issue 22806 - cppmangle: Complex real mangled incorrectly

https://github.com/dlang/dmd/pull/13702
Comment 2 Dlang Bot 2022-02-22 11:40:24 UTC
dlang/dmd pull request #13702 "fix Issue 22806 - cppmangle: Complex real mangled incorrectly" was merged into master:

- 975801610b7f3f054b0c881d1dd330175b2f02d9 by Iain Buclaw:
  fix Issue 22806 - cppmangle: Complex real mangled incorrectly

https://github.com/dlang/dmd/pull/13702