LLVM-CXXFILT(1)
π LLVM-CXXFILT(1) β the LLVM manual, bestie edition
okay so, welcome to llvm-cxxfilt, part of the LLVM fam π«Ά. Sit down, grab a boba, we're gonna talk about demangling. Yes it's as iconic as it sounds.
β¨ NAME β¨
llvm-cxxfilt β the LLVM symbol name demangler πΈ
β¨ SYNOPSIS β¨
llvm-cxxfilt [options] [mangled names...]
π DESCRIPTION π
llvm-cxxfilt is a symbol demangler, and honestly? It's giving "drop-in replacement for the GNU c++filt tool" π. You hand it a bunch of symbol names, and it prints their demangled form on the standard output stream. That's it. That's the whole job. Slay.
And if a name can't be demangled? No drama, no error, it just gets printed as-is. We don't gatekeep, we don't crash π .
Now, if you don't drop any names on the command line, it'll read them interactively from the standard input stream instead β¨. But here's the cute little detail you need to know: when it's reading from standard input, it splits each line on characters that aren't part of valid Itanium name manglings β aka characters that are not alphanumeric, '.', '$', or '_'. And the separators between names? They get copied to the output as-is. Zero crumbs left behind π.
π¦ EXAMPLE π¦
$ llvm-cxxfilt _Z3foov _Z3bari not_mangled
foo()
bar(int)
not_mangled
$ cat input.txt
| _Z3foov *** _Z3bari *** not_mangled |
$ llvm-cxxfilt < input.txt
| foo() *** bar(int) *** not_mangled |
look at that. not_mangled said "I'm staying exactly as I am" and honestly? respect π
π₯ OPTIONS π₯
--format=<value>,-sβ which mangling scheme to assume. Valid values areauto(the default β it auto-detects the style for you, main character energy) andgnu(assume the GNU/Itanium style).--help,-hβ print a summary of the command line options. Your safety net π«Ά--no-params,-pβ do NOT demangle function parameters or return types. Keep it mysterious.--no-strip-underscore,-nβ do not strip a leading underscore. This is the default for all platforms except Mach-O based hosts. Periodt.--strip-underscore,-_β strip a single leading underscore, if present, from each input name before demangling. On by default on Mach-O based platforms π--types,-tβ attempt to demangle names as type names as well as function names. Versatile queen β¨--versionβ display the version of thellvm-cxxfiltexecutable.@<FILE>β read command-line options from response file<FILE>. iykyk π
π EXIT STATUS π
llvm-cxxfilt returns 0 unless it encounters a usage error β in which case, bestie, a non-zero exit code is returned. π
π SEE ALSO π
llvm-nm(1)<llvm-nm.html> β go say hi π
π Author π
Maintained by the LLVM Team (https://llvm.org/). They're literally the blueprint π
π Copyright π
2003-2026, LLVM Project
and that's the whole page, bestie β no cap, every flag, every default, every separator character π
this gorgeous little manpage is version 15, dated 2026-09-09, and it goes out to you from the LLVM project with love π§β¨ mwah, now go demangle something π
π¦ where this page comes from
- ubuntu stonking: llvm-18 1:18.1.8-20ubuntu11 Β· APACHE-2-LLVM-EXCEPTIONS
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms