[libcxx-commits] [PATCH] D140359: [ItaniumDemangle] Fix substitution failure of _BitInt
John McCall via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Jan 5 13:42:57 PST 2023
rjmccall added a comment.
That's an interesting question. The ABI says:
There are two exceptions that appear to be substitution candidates from the grammar, but are explicitly excluded:
- `<builtin-type>` other than vendor extended types, and
- function and operator names other than `extern "C"` functions.
The intent here, I think, is to not waste substitution entries on builtin types, most of which are encoded more compactly than substitutions anyway. That is why vendor extended types are an exception to the exception: they're not particularly compact and so are still useful to compress. (I don't know if we reliably get that right in the frontend, actually.) It's in keeping with that intent for `_BigInt` to be a substitution candidate, since it's a relatively long encoding. That's not what the ABI actually says, though, so we should fix it either in the frontend or in the ABI document.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D140359/new/
https://reviews.llvm.org/D140359
More information about the libcxx-commits
mailing list