@@ -366,6 +366,7 @@ Armv8.4-A [[ARMARMv84]](#ARMARMv84). Support is added for the Dot Product intrin
366366 feature names are appended in lexicographic order, not in priority order.
367367 * Mangled names contain a unique set of features (no duplicates).
368368 * Added [MOPS](#memcpy-family-of-operations-intrinsics---mops).
369+ * Change name mangling of the default version.
369370 * Align priorities to account for feature dependencies.
370371 * Introduce alternative names (aliases) `rdma` for `rdm`.
371372 * Correct FEAT_BTI feature register value.
@@ -2514,8 +2515,10 @@ compiler and it is enabled.
25142515
25152516### Name mangling
25162517
2517- The `"default"` version is not mangled on top of the language-specific name
2518- mangling.
2518+ The `"default"` version is mangled with `".default"` on top of the
2519+ language-specific name mangling. All versioned functions with their mangled names
2520+ are always resolvable.
2521+ A function is expected to be resolvable with the original mangled name of the function.
25192522
25202523The mangling function is compatible with the mangling for version information of
25212524the [[cxxabi]](#cxxabi), and it is defined as follows:
@@ -2535,9 +2538,9 @@ For example:
25352538__attribute__((target_clones("crc32", "aes+sha1")))
25362539int foo(){..}
25372540```
2538- will produce these mangled names for C language: `foo`, `foo._Mcrc32`,
2539- `foo._MaesMsha1`.
2540-
2541+ will produce these mangled names for C language: `foo.default `, `foo._Mcrc32`,
2542+ `foo._MaesMsha1` while `foo` is a callable external symbol which leads to one
2543+ of the versioned functions.
25412544
25422545### Mapping
25432546
0 commit comments