//===-- TestLanguage.def - Language Versions for Testing --------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // The TESTLANGUAGE(-C/-CXX) macros have four parameters: // the language, the standard version, the corresponding compile-flag, // and an index of the language version for each language. // The standard version is used to compare a standard version numerically, // and the index is used to impose ordering for the language versions // with respect to each language. #ifndef TESTLANGUAGE # define TESTLANGUAGE(...) #endif #ifndef TESTLANGUAGE_C # define TESTLANGUAGE_C(...) TESTLANGUAGE(__VA_ARGS__) #endif #ifndef TESTLANGUAGE_CXX # define TESTLANGUAGE_CXX(...) TESTLANGUAGE(__VA_ARGS__) #endif TESTLANGUAGE_C(C, 89, c89, 0) TESTLANGUAGE_C(C, 99, c99, 1) TESTLANGUAGE_C(C, 11, c11, 2) TESTLANGUAGE_C(C, 17, c17, 3) TESTLANGUAGE_C(C, 23, c23, 4) TESTLANGUAGE_C(C, 26, c2y, 5) // TESTLANGUAGE_CXX(CXX, 98, c++98, 0) TESTLANGUAGE_CXX(CXX, 03, c++03, 1) TESTLANGUAGE_CXX(CXX, 11, c++11, 2) TESTLANGUAGE_CXX(CXX, 14, c++14, 3) TESTLANGUAGE_CXX(CXX, 17, c++17, 4) TESTLANGUAGE_CXX(CXX, 20, c++20, 5) TESTLANGUAGE_CXX(CXX, 23, c++23, 6) TESTLANGUAGE_CXX(CXX, 26, c++26, 7) #undef TESTLANGUAGE_CXX #undef TESTLANGUAGE_C #undef TESTLANGUAGE