Skip to content

Commit bdfd941

Browse files
committed
Auto merge of #123816 - tgross35:f16-f128-mangling, r=michaelwoerister
Add v0 symbol mangling for `f16` and `f128` As discussed at <#122106>, use the crate encoding to represent new primitives.
2 parents 31026b7 + 792a9bd commit bdfd941

File tree

6 files changed

+924
-244
lines changed

6 files changed

+924
-244
lines changed

compiler/rustc_symbol_mangling/src/v0.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -319,11 +319,10 @@ impl<'tcx> Printer<'tcx> for SymbolMangler<'tcx> {
319319
ty::Uint(UintTy::U64) => "y",
320320
ty::Uint(UintTy::U128) => "o",
321321
ty::Uint(UintTy::Usize) => "j",
322-
// FIXME(f16_f128): update these once `rustc-demangle` supports the new types
323-
ty::Float(FloatTy::F16) => unimplemented!("f16_f128"),
322+
ty::Float(FloatTy::F16) => "C3f16",
324323
ty::Float(FloatTy::F32) => "f",
325324
ty::Float(FloatTy::F64) => "d",
326-
ty::Float(FloatTy::F128) => unimplemented!("f16_f128"),
325+
ty::Float(FloatTy::F128) => "C4f128",
327326
ty::Never => "z",
328327

329328
// Placeholders (should be demangled as `_`).

src/doc/rustc/src/symbol-mangling/v0.md

+2
Original file line numberDiff line numberDiff line change
@@ -739,6 +739,8 @@ The type encodings based on the initial tag character are:
739739
* `z` — `!`
740740
* `p` — [placeholder] `_`
741741
742+
Remaining primitives are encoded as a crate production, e.g. `C4f128`.
743+
742744
* `A` — An [array][reference-array] `[T; N]`.
743745
744746
> <span id="array-type">array-type</span> → `A` *[type]* *[const]*

0 commit comments

Comments
 (0)