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

Reply via email to