CSCLNG(1)

πŸ“¦
version 2.2.8 Β· 3 versions
, in epel 10, epel 9, fedora 43, fedora 44

πŸ’… CSCLNG β€” like, the Clang analyzer but make it background, bestie

okay so picture this: it's csclng, a compiler wrapper that runs the Clang analyzer in the background. That's the whole vibe. You don't have to do anything weird to your build β€” you just let her cook. ✨


πŸŽ€ SYNOPSIS πŸŽ€

csclng [--help | --print-path-to-wrap]

🌸 DESCRIPTION 🌸

So csclng is a compiler wrapper that runs Clang in background. That's it, that's the girl. 🫢

Here's the setup, and it's giving very low-effort-high-reward: you make a symbolic link to csclng and you name that link after your compiler (gcc, g++, ...) and then you drop it into your $PATH. Boom. Done. The compiler you thought you were calling is actually calling her. 😌

✨ the defaults, no cap

These following parameters get handed to Clang by default β€” you didn't ask, she just does it:

  • --analyze
  • -Xanalyzer -analyzer-output=text
  • -fno-caret-diagnostics

πŸ¦‹ and these get passed through from the compiler's command line

Whatever you typed at your compiler, these following parameters get passed along to Clang:

  • -D...
  • -I...
  • -O...
  • -fexceptions
  • -fno-exceptions
  • -include ...
  • -iquote ...
  • -isystem ...
  • -m16
  • -m32
  • -m64
  • -std...

πŸ“ which files count as C/C++ source files

The following file extensions are recognized as C/C++ source files:

  • c
  • C
  • cc
  • cpp
  • cxx

πŸ’– turning her on (the wrapper, obviously)

If csclng is installed on your system, the following command activates the wrapper:

export PATH="$(csclng --print-path-to-wrap):$PATH"
⭐ fr fr, that's the whole activation ritual. No config file, no daemon, no drama. Just PATH.

πŸ‘‘ OPTIONS πŸ‘‘

  • --help β€” prints basic usage information. You know. The little "here's what I do" moment. πŸ’β€β™€οΈ
  • --print-path-to-wrap β€” prints the path to the directory that has the symlinks pointing at the csclng executable. This is the one you shove into $PATH. πŸŽ€

πŸ’€ EXIT STATUS πŸ’€

csclng propagates the exit status returned by the compiler β€” but only in the case that csclng actually succeeds in running the compiler. 😭

And listen, this part matters: the exit status returned by Clang does not affect the resulting exit status. Like, at all. Clang can be screaming in the background and your build still says what your compiler says. That's the arrangement. Periodt.


🌈 ENVIRONMENT VARIABLES 🌈

  • DEBUG_CSCLNG β€” if set to a non-empty string, csclng outputs the list of parameters given to Clang to the standard output. Peek behind the curtain, bestie. πŸ‘€
  • CSCLNG_ADD_OPTS β€” csclng expects a colon-separated list of Clang options that should be appended to the command line prior to invoking Clang. And here's the tea: the options are appended even if they already appear in the command line, and they are always appended at the end of the command line. So yes, duplicates. She said what she said. πŸ™ˆ

🧚 BUGS 🧚

Please report bugs and feature requests at https://github.com/csutils/cscppc. Don't suffer in silence, that's not the vibe. πŸ₯Ί


πŸ’œ AUTHOR πŸ’œ

Written by Kamil Dudka. Iconic of him honestly. πŸ‘‘


⭐ COPYING ⭐

Copyright (C) 2013-2022 Red Hat, Inc. Free use of this software is granted under the terms of the GNU General Public License (GPL). See the COPYING file for details. πŸ“œ


okay that's the whole page, you're literally so ready now. This was CSCLNG(1), dated 06/29/2026 β€” mwah, go analyze something, bestie πŸ«ΆπŸ’–βœ¨

πŸ“¦ where this page comes from