Add v0 symbol mangling for f16 and f128 · rust-lang/rust@809b84e (original) (raw)

File tree

2 files changed

lines changed

2 files changed

lines changed

Original file line number Diff line number Diff line change
@@ -319,11 +319,10 @@ impl<'tcx> Printer<'tcx> for SymbolMangler<'tcx> {
319 319 ty::Uint(UintTy::U64) => "y",
320 320 ty::Uint(UintTy::U128) => "o",
321 321 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",
324 323 ty::Float(FloatTy::F32) => "f",
325 324 ty::Float(FloatTy::F64) => "d",
326 - ty::Float(FloatTy::F128) => unimplemented!("f16_f128"),
325 + ty::Float(FloatTy::F128) => "C4f128",
327 326 ty::Never => "z",
328 327
329 328 // Placeholders (should be demangled as `_`).
Original file line number Diff line number Diff line change
@@ -739,6 +739,8 @@ The type encodings based on the initial tag character are:
739 739 * `z` — `!`
740 740 * `p` — [placeholder] `_`
741 741
742 +Remaining primitives are encoded as a crate production, e.g. `C4f128`.
743 +
742 744 * `A` — An [array][reference-array] `[T; N]`.
743 745
744 746 > <span id="array-type">array-type</span> → `A` *[type]* *[const]*