GCC supports several types of pragmas, primarily in order to compile code originally written for other compilers. Note that in general we do not recommend the use of pragmas; See Declaring Attributes of Functions, for further explanation.
The GNU C preprocessor recognizes several pragmas in addition to the compiler pragmas documented here. Refer to the CPP manual for more information.
GCC additionally recognizes OpenMP pragmas when the -fopenmp option is specified, and OpenACC pragmas when the -fopenacc option is specified. See OpenMP, and OpenACC.