LLVM-CXXFILT(1)
π LLVM-CXXFILT(1) π
okay bestie, gather round, because we're about to talk about llvm-cxxfilt β that's the LLVM symbol name demangler, section 1 of the manual, and honestly? she's iconic. π
β¨ NAME β¨
llvm-cxxfilt β the LLVM symbol name demangler. yeah. that's her whole job. and she eats every time. π
πΈ SYNOPSIS πΈ
llvm-cxxfilt [options] [mangled names...]
π¦ DESCRIPTION π¦
so llvm-cxxfilt is a symbol demangler, and the whole vibe is that you can use her as a drop-in replacement for the GNU c++filt tool. she takes a bunch of symbol names and prints their demangled form over on the standard output stream. that's it. that's the gig. π
and listen β if a name can't be demangled? she does not panic, she does not throw hands, she simply prints it as-is. no drama, just vibes. β¨
now, if you don't hand her any names on the command line, she'll read names interactively from the standard input stream instead. π«Ά and here's the lil detail that matters: when she's reading from standard input, every input line gets split on characters that are not part of valid Itanium name manglings β meaning characters that aren't alphanumeric, '.', '$', or '_'. and those separators between names? she copies them straight to the output as-is. cute, right? π
π EXAMPLE π
watch her work, no cap:
$ 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 in and stayed exactly as it was? she's so respectful. π and those *** separators? untouched. preserved. main character energy. β¨
π OPTIONS π
here we go bestie, the whole lineup, no skips:
--format=<value>,-sβ which mangling scheme to assume. valid values areauto(that's the default, and it auto-detects the style) andgnu(assume GNU/Itanium style). pick your fighter. π₯--help,-hβ prints a summary of the command line options. she's helpful like that. π«Ά--no-params,-pβ do not demangle function parameters or return types. just the name, thanks. π--no-strip-underscore,-nβ do not strip a leading underscore. heads up: this is the default for all platforms. β--quoteβ adds" "around demangled names. and no, she won't double-quote names that are already quoted. she has taste. π--strip-underscore,-_β strips a single leading underscore, if one's there, from each input name before demangling. bye underscore π--types,-tβ attempts to demangle names as type names as well as symbol names. she contains multitudes. π--versionβ displays the version of thellvm-cxxfiltexecutable. β¨@<FILE>β reads command-line options from the response file<FILE>. yes,@and all. π
π₯ EXIT STATUS π₯
llvm-cxxfilt returns 0 unless she runs into a usage error, and in that case a non-zero exit code comes back. so like, 0 = she's happy, not 0 = you did something and she's telling you about it. π
π SEE ALSO π
llvm-nm(1)<llvm-nm.html>
π Author π
Maintained by the LLVM Team (https://llvm.org/). they keep her thriving, fr fr. π«Ά
π Copyright π
2003-2026, LLVM Project
and that's the whole page, bestie!! LLVM version 22, dated 2026-07-16 β so when you're out here demangling symbols, just know you're doing it with the freshest, most iconic tool in the game. slay, go demangle something, periodt. πβ¨π¦πΈπ
π¦ where this page comes from
- fedora 44: llvm 22.1.8-4.fc44 Β· Apache-2.0 WITH LLVM-exception OR NCSA
- fedora 44: llvm 22.1.8-4.fc44 Β· Apache-2.0 WITH LLVM-exception OR NCSA
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms