1 //===--- PragmaKinds.h - #pragma comment() kinds ---------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLVM_CLANG_BASIC_PRAGMAKINDS_H 10 #define LLVM_CLANG_BASIC_PRAGMAKINDS_H 11 12 namespace clang { 13 14 enum PragmaMSCommentKind { 15 PCK_Unknown, 16 PCK_Linker, // #pragma comment(linker, ...) 17 PCK_Lib, // #pragma comment(lib, ...) 18 PCK_Compiler, // #pragma comment(compiler, ...) 19 PCK_ExeStr, // #pragma comment(exestr, ...) 20 PCK_User // #pragma comment(user, ...) 21 }; 22 23 enum PragmaMSStructKind { 24 PMSST_OFF, // #pragms ms_struct off 25 PMSST_ON // #pragms ms_struct on 26 }; 27 28 enum PragmaFloatControlKind { 29 PFC_Unknown, 30 PFC_Precise, // #pragma float_control(precise, [,on]) 31 PFC_NoPrecise, // #pragma float_control(precise, off) 32 PFC_Except, // #pragma float_control(except [,on]) 33 PFC_NoExcept, // #pragma float_control(except, off) 34 PFC_Push, // #pragma float_control(push) 35 PFC_Pop // #pragma float_control(pop) 36 }; 37 38 enum PragmaFPKind { 39 PFK_Contract, // #pragma clang fp contract 40 PFK_Reassociate, // #pragma clang fp reassociate 41 PFK_Reciprocal, // #pragma clang fp reciprocal 42 PFK_Exceptions, // #pragma clang fp exceptions 43 PFK_EvalMethod // #pragma clang fp eval_method 44 }; 45 } 46 47 #endif 48