LLVM-CXXFILT(1)

πŸ’… LLVM-CXXFILT(1) β€” llvm-cxxfilt, the demangler bestie πŸ’…

okay so bestie, welcome to the llvm-cxxfilt(1) manual page from LLVM. it’s giving make mangled C++ names make sense, and honestly? iconic. πŸ’–

🌸 NAME 🌸

llvm-cxxfilt β€” LLVM symbol name demangler. it does exactly what it says on the tin, no cap. ✨

✨ SYNOPSIS ✨

llvm-cxxfilt [options] [mangled names...]

πŸ¦‹ DESCRIPTION πŸ¦‹

llvm-cxxfilt is a symbol demangler that can be used as a replacement for the GNU c++filt tool. it takes a series of symbol names and prints their demangled form on the standard output stream. if a name cannot be demangled, it is simply printed as is. no drama, no cap. πŸ’…

if no names are specified on the command-line, names are read interactively from the standard input stream. when reading names from standard input, each input line is split on characters that are not part of valid Itanium name manglings, i.e. characters that are not alphanumeric, ., $, or _. separators between names are copied to the output as is. periodt. πŸ¦‹

πŸŽ€ 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 |

πŸ‘‘ OPTIONS πŸ‘‘

  • --format=<value>, -s β€” mangling scheme to assume. valid values are auto (default, auto-detect the style) and gnu (assume GNU/Itanium style). pick your fighter, bestie. πŸ‘‘
  • --help, -h β€” print a summary of command line options. the β€œhelp me help you” option, lowkey essential. 🫢
  • --no-params, -p β€” do not demangle function parameters or return types. just the name, none of the extra lore. πŸ’€
  • --no-strip-underscore, -n β€” do not strip a leading underscore. this is the default for all platforms except Mach-O based hosts. noted. πŸŽ€
  • --quote β€” add " " around demangled names. do not quote already quoted names. we love a boundary, but not double-quoting. πŸ™ˆ
  • --strip-underscore, -_ β€” strip a single leading underscore, if present, from each input name before demangling. on by default on Mach-O based platforms. it’s giving underscore cleanup. 🧚
  • --types, -t β€” attempt to demangle names as type names as well as symbol names. multitasking slay. ⭐
  • --version β€” display the version of the llvm-cxxfilt executable. version check, but make it cute. πŸ’œ
  • @<FILE> β€” read command-line options from response file <FILE>. file-based bestie behavior. πŸ“

πŸ’€ EXIT STATUS πŸ’€

llvm-cxxfilt returns 0 unless it encounters a usage error, in which case a non-zero exit code is returned. so yeah, success is 0, and usage errors get the non-zero treatment. 😭

🌈 SEE ALSO 🌈

llvm-nm(1) <llvm-nm.html> β€” go say hi. 🌈

πŸ’Œ Author πŸ’Œ

Maintained by the LLVM Team (https://llvm.org/). they keep it cute and maintained. 🫢

2003-2026, LLVM Project


okay bye bestie 🫢 this page is page 21, dated 2026-05-15, and it’s the LLVM-CXXFILT(1) page from LLVM. mwah πŸ’‹

πŸ“¦ where this page comes from