diff options
author | Gabor Marton <martongabesz@gmail.com> | 2018-05-24 08:41:07 +0000 |
---|---|---|
committer | Gabor Marton <martongabesz@gmail.com> | 2018-05-24 08:41:07 +0000 |
commit | 1f667535cf4b425c25014c65363a6318e4dbba6a (patch) | |
tree | bfcb7d63d0a14436c8ca9ff18226e29fc88ee40a /clang/unittests/AST/Language.cpp | |
parent | 7bcfeab4f2bc5c055103c63c47bc0ddece518489 (diff) | |
download | bcm5719-llvm-1f667535cf4b425c25014c65363a6318e4dbba6a.tar.gz bcm5719-llvm-1f667535cf4b425c25014c65363a6318e4dbba6a.zip |
[ASTImporter] Add unit tests for structural equivalence
Summary:
This patch add new tests for structural equivalence. For that a new
common header is created which holds the test related language specific
types and functions.
Reviewers: a.sidorin, xazax.hun, szepet
Subscribers: rnkovacs, dkrupp, cfe-commits
Differential Revision: https://reviews.llvm.org/D46867
llvm-svn: 333166
Diffstat (limited to 'clang/unittests/AST/Language.cpp')
-rw-r--r-- | clang/unittests/AST/Language.cpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/clang/unittests/AST/Language.cpp b/clang/unittests/AST/Language.cpp new file mode 100644 index 00000000000..972c2a5495a --- /dev/null +++ b/clang/unittests/AST/Language.cpp @@ -0,0 +1,60 @@ +//===------ unittest/AST/Language.cpp - AST unit test support -------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines language options for AST unittests. +// +//===----------------------------------------------------------------------===// + +#include "Language.h" + +namespace clang { +namespace ast_matchers { + +ArgVector getBasicRunOptionsForLanguage(Language Lang) { + ArgVector BasicArgs; + // Test with basic arguments. + switch (Lang) { + case Lang_C: + BasicArgs = {"-x", "c", "-std=c99"}; + break; + case Lang_C89: + BasicArgs = {"-x", "c", "-std=c89"}; + break; + case Lang_CXX: + BasicArgs = {"-std=c++98", "-frtti"}; + break; + case Lang_CXX11: + BasicArgs = {"-std=c++11", "-frtti"}; + break; + case Lang_CXX14: + BasicArgs = {"-std=c++14", "-frtti"}; + break; + case Lang_OpenCL: + case Lang_OBJCXX: + llvm_unreachable("Not implemented yet!"); + } + return BasicArgs; +} + +RunOptions getRunOptionsForLanguage(Language Lang) { + ArgVector BasicArgs = getBasicRunOptionsForLanguage(Lang); + + // For C++, test with "-fdelayed-template-parsing" enabled to handle MSVC + // default behaviour. + if (isCXX(Lang)) { + ArgVector ArgsForDelayedTemplateParse = BasicArgs; + ArgsForDelayedTemplateParse.emplace_back("-fdelayed-template-parsing"); + return {BasicArgs, ArgsForDelayedTemplateParse}; + } + + return {BasicArgs}; +} + +} // end namespace ast_matchers +} // end namespace clang |