https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92111
--- Comment #5 from Aldy Hernandez <aldyh at gcc dot gnu.org> --- Please include any flags that were used in building things. For example, it looks like it needs at least -std=c++17 to work. I can't reproduce with a ./cc1plus -O2. I also can't reproduce with -flto: ./xgcc -B./ a.ii -w -O2 -std=c++17 -flto /usr/bin/ld: /lib/../lib64/crt1.o: in function `_start': (.text+0x24): undefined reference to `main' /usr/bin/ld: /tmp/cczITmdb.ltrans0.ltrans.o:(.qtversion[qt_version_tag]+0x0): undefined reference to `qt_version_tag' collect2: error: ld returned 1 exit status Have you tried with a more recent trunk? Can you reproduce at all without -flto, as LTO is a bit trickier to debug, and may require you sending more files. Can you narrow down the source to the smallest subset that can still reproduce the bug?