With 17.10:
#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)))
#pragma GCC warning "I'm a warning"
#pragma GCC error "I'm an error"
#endif
int main(int argc, char** argv) {
return 0;
}
$ pgc++ --display_error_number -o pb pb.cpp
"pb.cpp", line 2: warning #1675-D: unrecognized GCC pragma
#pragma GCC warning "I'm a warning"
^
"pb.cpp", line 3: warning #1675-D: unrecognized GCC pragma
#pragma GCC error "I'm an error"
^
They were added in GCC 4.8. I’d love to see them properly supported, but an unrecognized pragma warning is definitely wrong if__GNUC__/GNUC_MINOR is set to indicate >= 4.8.