https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109936
--- Comment #12 from Adam Wozniak <adam at wozniakconsulting dot com> --- (In reply to Jonathan Wakely from comment #9) > (In reply to Adam Wozniak from comment #8) > > i don't think of the preprocessor as part of the compiler. > > it's a different step, a different executable, that happens BEFORE the > > compiler. > > No it isn't. Preprocessing is done by the compiler, using libcpp. There is > no different executable. GCC has worked that way for many, many years. No, i am fairly CERTAIN they are different executables. i can even invoke one without the other; /lib/cpp can be invoked directly, and g++ can be told to skip the preprocessor by renaming your source file *.i or *.ii. $ ls -la /lib/cpp lrwxrwxrwx 1 root root 21 May 11 2022 /lib/cpp -> /etc/alternatives/cpp $ ls -la /etc/alternatives/cpp lrwxrwxrwx 1 root root 12 May 11 2022 /etc/alternatives/cpp -> /usr/bin/cpp $ ls -la /usr/bin/cpp lrwxrwxrwx 1 root root 6 May 11 2022 /usr/bin/cpp -> cpp-11 $ ls -la /usr/bin/cpp-11 lrwxrwxrwx 1 root root 23 Jan 16 05:17 /usr/bin/cpp-11 -> x86_64-linux-gnu-cpp-11 $ ls -la /usr/bin/x86_64-linux-gnu-cpp-11 -rwxr-xr-x 1 root root 862976 Jan 16 05:17 /usr/bin/x86_64-linux-gnu-cpp-11 $ which g++ /usr/bin/g++ $ ls -la /usr/bin/g++ lrwxrwxrwx 1 root root 21 May 22 16:06 /usr/bin/g++ -> /etc/alternatives/g++ $ ls -la /etc/alternatives/g++ lrwxrwxrwx 1 root root 15 May 22 19:31 /etc/alternatives/g++ -> /usr/bin/g++-11 $ ls -la /usr/bin/g++-11 lrwxrwxrwx 1 root root 23 Jan 16 05:17 /usr/bin/g++-11 -> x86_64-linux-gnu-g++-11 $ ls -la /usr/bin/x86_64-linux-gnu-g++-11 -rwxr-xr-x 1 root root 862976 Jan 16 05:17 /usr/bin/x86_64-linux-gnu-g++-11