PGI 16.4 can’t write its preprocessing output into a file it seems. gcc, intel and clang support this.
It doesn’t report any warning or error to console. it just ignores it and prints to stdout.
$ pgcc -E -o main.i main.c
If you replace pgcc with pgc++ it works as intended.
Is this intended, or should I file a support request / bug?