https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109936
--- Comment #14 from Adam Wozniak <adam at wozniakconsulting dot com> --- (In reply to Adam Wozniak from comment #12) > (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 lest someone claim they are the same because of identical sizes... $ md5sum /usr/bin/x86_64-linux-gnu-g++-11 f0b26412421754aa03b9457a4d2ee40c /usr/bin/x86_64-linux-gnu-g++-11 $ md5sum /usr/bin/x86_64-linux-gnu-cpp-11 3bddc1f50d7631ad22da0f875babe7a3 /usr/bin/x86_64-linux-gnu-cpp-11