LLVM-CXXFILT(1)
π llvm-cxxfilt β from the LLVM manual pages, bestie β¨
okay so this is llvm-cxxfilt, and it lives in the LLVM section of your man pages. buckle up, we're demangling π
πΈ NAME πΈ
llvm-cxxfilt β the LLVM symbol name demangler, aka the glow-up machine for your cursed-looking symbols π«Ά
β¨ SYNOPSIS β¨
llvm-cxxfilt [options] [mangled names...]
π¦ DESCRIPTION π¦
so llvm-cxxfilt is a symbol demangler β it takes those gnarly mangled names and gives them their cute readable form back. it can be used as a drop-in replacement for the GNU c++filt tool, no cap. you hand it a series of symbol names, and it prints their demangled form on the standard output stream. and if a name genuinely cannot be demangled? it just prints it as is. no drama, no error, it's giving grace π
if you don't specify any names on the command-line, then it reads names interactively from the standard input stream. and here's the iconic part: when reading names from standard input, each input line is split on characters that are not part of valid Itanium name manglings β so basically characters that are not alphanumeric, '.', '$', or '_'. and the separators between names? they get copied to the output as is. preserved, untouched, main character energy β¨
π EXAMPLE π
like literally just watch:
$ 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 |
see how not_mangled just walked out the same way it walked in? unbothered. and see how those *** separators stayed exactly where they were? ate π
π OPTIONS π
--format=<value>,-sβ which mangling scheme to assume. valid values areauto(the default β it auto-detects the style for you, lowkey psychic) andgnu(assume GNU/Itanium style, periodt).--help,-hβ print a summary of command line options. your little cheat sheet π₯°--help-listβ print an uncategorized summary of command line options. same info, just ungrouped, raw, unfiltered β¨--no-strip-underscore,-nβ do not strip a leading underscore. this is the default for all platforms except Mach-O based hosts, so heads up if you're on one of those π«Ά--strip-underscore,-_β strip a single leading underscore, if present, from each input name before demangling. on by default on Mach-O based platforms. yes, the flag really is a lone underscore, she's minimal and she's iconic π--types,-tβ attempt to demangle names as type names as well as function names. double duty, versatile queen π--versionβ display the version of thellvm-cxxfiltexecutable.@<FILE>β read command-line options from response file <FILE>. yes, the@is doing all the work, that's her moment π
π₯ EXIT STATUS π₯
llvm-cxxfilt returns 0 unless it encounters a usage error, in which case a non-zero exit code is returned. so if you did something wrong with the flags, expect the number to not be zero. she will tell on you π
π SEE ALSO π
go give it a read, it's the sibling, the duo, iykyk π
π§ AUTHOR π§
maintained by the LLVM Team (https://llvm.org/). ty for your service, besties π«‘π
β COPYRIGHT β
2003-2024, LLVM Project
and that's the whole page, no notes π this was LLVM-CXXFILT(1) from 2024-07-18, the LLVM release, and yes the copyright has been running since 2003-2024 β a real legacy, a long-running slay. mwah πβ¨
π¦ where this page comes from
- fedora 43: llvm11 11.1.0-14.fc41 Β· NCSA
- fedora 43: llvm11 11.1.0-14.fc41 Β· NCSA
- fedora 44: llvm11 11.1.0-14.fc41 Β· NCSA
- fedora 44: llvm11 11.1.0-14.fc41 Β· NCSA
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms