brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 0d7d5ec Raw
57 lines · cpp
1//===- unittests/Basic/LangOptionsTest.cpp --------------------------------===//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-exception6//7//===----------------------------------------------------------------------===//8 9#include "clang/Basic/LangOptions.h"10#include "gtest/gtest.h"11 12using namespace llvm;13using namespace clang;14 15namespace {16TEST(LangOptsTest, CStdLang) {17  LangOptions opts;18  EXPECT_FALSE(opts.getCLangStd());19  opts.GNUMode = 0;20  opts.Digraphs = 1;21  EXPECT_EQ(opts.getCLangStd(), 199409);22  opts.C99 = 1;23  EXPECT_EQ(opts.getCLangStd(), 199901);24  opts.C11 = 1;25  EXPECT_EQ(opts.getCLangStd(), 201112);26  opts.C17 = 1;27  EXPECT_EQ(opts.getCLangStd(), 201710);28  opts.C23 = 1;29  EXPECT_EQ(opts.getCLangStd(), 202311);30  opts.C2y = 1;31  EXPECT_EQ(opts.getCLangStd(), 202400);32 33  EXPECT_FALSE(opts.getCPlusPlusLangStd());34}35 36TEST(LangOptsTest, CppStdLang) {37  LangOptions opts;38  EXPECT_FALSE(opts.getCPlusPlusLangStd());39  opts.CPlusPlus = 1;40  EXPECT_EQ(opts.getCPlusPlusLangStd(), 199711);41  opts.CPlusPlus11 = 1;42  EXPECT_EQ(opts.getCPlusPlusLangStd(), 201103);43  opts.CPlusPlus14 = 1;44  EXPECT_EQ(opts.getCPlusPlusLangStd(), 201402);45  opts.CPlusPlus17 = 1;46  EXPECT_EQ(opts.getCPlusPlusLangStd(), 201703);47  opts.CPlusPlus20 = 1;48  EXPECT_EQ(opts.getCPlusPlusLangStd(), 202002);49  opts.CPlusPlus23 = 1;50  EXPECT_EQ(opts.getCPlusPlusLangStd(), 202302);51  opts.CPlusPlus26 = 1;52  EXPECT_EQ(opts.getCPlusPlusLangStd(), 202400);53 54  EXPECT_FALSE(opts.getCLangStd());55}56} // namespace57