#pragma
директивы полностью зависят от реализации. Это означает языковую реализацию, которую вы создаете. Вы можете делать с ними все, что захотите. Буквально что угодно.
Было бы разумно, если бы первым в ваших собственных прагмах было название вашей реализации, как это делает GCC, чтобы вы не конфликтовали с прагмами, которые кто-то может добавить в свой код, предназначенный для другой реализации. С другой стороны, если вы намеренно добавляете прагму, которую также использует какая-то другая реализация, вы должны сделать ее одинаковой (в том числе, если у нее есть имя этой реализации), чтобы одна и та же прагма работала в обеих реализациях. Например, clang использует множество прагм GCC.
Когда другие реализации, такие как GCC, считывают ваш код, они обычно выдают предупреждения о неизвестных прагмах, а не об ошибках, поэтому наличие ваших собственных прагм не мешает кому-то скомпилировать ваш код другим компилятором.
Прикрепляю к посту несколько видео по теме: