forked from OSchip/llvm-project
Remove the -cxx-abi command-line flag.
This makes the C++ ABI depend entirely on the target: MS ABI for -win32 triples, Itanium otherwise. It's no longer possible to do weird combinations. To be able to run a test with a specific ABI without constraining it to a specific triple, new substitutions are added to lit: %itanium_abi_triple and %ms_abi_triple can be used to get the current target triple adjusted to the desired ABI. For example, if the test suite is running with the i686-pc-win32 target, %itanium_abi_triple will expand to i686-pc-mingw32. Differential Revision: http://llvm-reviews.chandlerc.com/D2545 llvm-svn: 199250
This commit is contained in:
parent
8799445065
commit
c9bd88e681
|
@ -38,10 +38,6 @@ public:
|
|||
/// If given, the name of the target ABI to use.
|
||||
std::string ABI;
|
||||
|
||||
/// If given, the name of the target C++ ABI to use. If not given, defaults
|
||||
/// to "itanium".
|
||||
std::string CXXABI;
|
||||
|
||||
/// If given, the version string of the linker in use.
|
||||
std::string LinkerVersion;
|
||||
|
||||
|
|
|
@ -17,8 +17,6 @@ let Flags = [CC1Option, NoDriverOption] in {
|
|||
// Target Options
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
def cxx_abi : Separate<["-"], "cxx-abi">,
|
||||
HelpText<"Target a particular C++ ABI type">;
|
||||
def target_abi : Separate<["-"], "target-abi">,
|
||||
HelpText<"Target a particular ABI type">;
|
||||
def target_cpu : Separate<["-"], "target-cpu">,
|
||||
|
|
|
@ -82,8 +82,10 @@ TargetInfo::TargetInfo(const llvm::Triple &T) : TargetOpts(), Triple(T) {
|
|||
// Default to not using fp2ret for __Complex long double
|
||||
ComplexLongDoubleUsesFP2Ret = false;
|
||||
|
||||
// Default to using the Itanium ABI.
|
||||
TheCXXABI.set(TargetCXXABI::GenericItanium);
|
||||
// Set the C++ ABI based on the triple.
|
||||
TheCXXABI.set(Triple.getOS() == llvm::Triple::Win32
|
||||
? TargetCXXABI::Microsoft
|
||||
: TargetCXXABI::GenericItanium);
|
||||
|
||||
// Default to an empty address space map.
|
||||
AddrSpaceMap = &DefaultAddrSpaceMap;
|
||||
|
|
|
@ -5841,12 +5841,6 @@ TargetInfo *TargetInfo::CreateTargetInfo(DiagnosticsEngine &Diags,
|
|||
return 0;
|
||||
}
|
||||
|
||||
// Set the target C++ ABI.
|
||||
if (!Opts->CXXABI.empty() && !Target->setCXXABI(Opts->CXXABI)) {
|
||||
Diags.Report(diag::err_target_unknown_cxxabi) << Opts->CXXABI;
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Set the fp math unit.
|
||||
if (!Opts->FPMath.empty() && !Target->setFPMath(Opts->FPMath)) {
|
||||
Diags.Report(diag::err_target_unknown_fpmath) << Opts->FPMath;
|
||||
|
|
|
@ -3933,10 +3933,6 @@ void Clang::AddClangCLArgs(const ArgList &Args, ArgStringList &CmdArgs) const {
|
|||
// implemented in clang.
|
||||
CmdArgs.push_back("--dependent-lib=oldnames");
|
||||
|
||||
// FIXME: Make this default for the win32 triple.
|
||||
CmdArgs.push_back("-cxx-abi");
|
||||
CmdArgs.push_back("microsoft");
|
||||
|
||||
if (Arg *A = Args.getLastArg(options::OPT_show_includes))
|
||||
A->render(Args, CmdArgs);
|
||||
|
||||
|
|
|
@ -1617,7 +1617,6 @@ static void ParsePreprocessorOutputArgs(PreprocessorOutputOptions &Opts,
|
|||
static void ParseTargetArgs(TargetOptions &Opts, ArgList &Args) {
|
||||
using namespace options;
|
||||
Opts.ABI = Args.getLastArgValue(OPT_target_abi);
|
||||
Opts.CXXABI = Args.getLastArgValue(OPT_cxx_abi);
|
||||
Opts.CPU = Args.getLastArgValue(OPT_target_cpu);
|
||||
Opts.FPMath = Args.getLastArgValue(OPT_mfpmath);
|
||||
Opts.FeaturesAsWritten = Args.getAllArgValues(OPT_target_feature);
|
||||
|
@ -1627,11 +1626,6 @@ static void ParseTargetArgs(TargetOptions &Opts, ArgList &Args) {
|
|||
// Use the default target triple if unspecified.
|
||||
if (Opts.Triple.empty())
|
||||
Opts.Triple = llvm::sys::getDefaultTargetTriple();
|
||||
|
||||
// Use the MS ABI for Win32 targets unless otherwise specified.
|
||||
if (Opts.CXXABI.empty() &&
|
||||
llvm::Triple(Opts.Triple).getOS() == llvm::Triple::Win32)
|
||||
Opts.CXXABI = "microsoft";
|
||||
}
|
||||
|
||||
bool CompilerInvocation::CreateFromArgs(CompilerInvocation &Res,
|
||||
|
@ -1767,8 +1761,7 @@ std::string CompilerInvocation::getModuleHash() const {
|
|||
|
||||
// Extend the signature with the target options.
|
||||
code = hash_combine(code, TargetOpts->Triple, TargetOpts->CPU,
|
||||
TargetOpts->ABI, TargetOpts->CXXABI,
|
||||
TargetOpts->LinkerVersion);
|
||||
TargetOpts->ABI, TargetOpts->LinkerVersion);
|
||||
for (unsigned i = 0, n = TargetOpts->FeaturesAsWritten.size(); i != n; ++i)
|
||||
code = hash_combine(code, TargetOpts->FeaturesAsWritten[i]);
|
||||
|
||||
|
|
|
@ -363,7 +363,6 @@ namespace {
|
|||
Out.indent(4) << " Triple: " << TargetOpts.Triple << "\n";
|
||||
Out.indent(4) << " CPU: " << TargetOpts.CPU << "\n";
|
||||
Out.indent(4) << " ABI: " << TargetOpts.ABI << "\n";
|
||||
Out.indent(4) << " C++ ABI: " << TargetOpts.CXXABI << "\n";
|
||||
Out.indent(4) << " Linker version: " << TargetOpts.LinkerVersion << "\n";
|
||||
|
||||
if (!TargetOpts.FeaturesAsWritten.empty()) {
|
||||
|
|
|
@ -140,7 +140,6 @@ static bool checkTargetOptions(const TargetOptions &TargetOpts,
|
|||
CHECK_TARGET_OPT(Triple, "target");
|
||||
CHECK_TARGET_OPT(CPU, "target CPU");
|
||||
CHECK_TARGET_OPT(ABI, "target ABI");
|
||||
CHECK_TARGET_OPT(CXXABI, "target C++ ABI");
|
||||
CHECK_TARGET_OPT(LinkerVersion, "target linker version");
|
||||
#undef CHECK_TARGET_OPT
|
||||
|
||||
|
@ -4009,7 +4008,6 @@ bool ASTReader::ParseTargetOptions(const RecordData &Record,
|
|||
TargetOpts.Triple = ReadString(Record, Idx);
|
||||
TargetOpts.CPU = ReadString(Record, Idx);
|
||||
TargetOpts.ABI = ReadString(Record, Idx);
|
||||
TargetOpts.CXXABI = ReadString(Record, Idx);
|
||||
TargetOpts.LinkerVersion = ReadString(Record, Idx);
|
||||
for (unsigned N = Record[Idx++]; N; --N) {
|
||||
TargetOpts.FeaturesAsWritten.push_back(ReadString(Record, Idx));
|
||||
|
|
|
@ -1103,7 +1103,6 @@ void ASTWriter::WriteControlBlock(Preprocessor &PP, ASTContext &Context,
|
|||
AddString(TargetOpts.Triple, Record);
|
||||
AddString(TargetOpts.CPU, Record);
|
||||
AddString(TargetOpts.ABI, Record);
|
||||
AddString(TargetOpts.CXXABI, Record);
|
||||
AddString(TargetOpts.LinkerVersion, Record);
|
||||
Record.push_back(TargetOpts.FeaturesAsWritten.size());
|
||||
for (unsigned I = 0, N = TargetOpts.FeaturesAsWritten.size(); I != N; ++I) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s
|
||||
|
||||
struct X { };
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -std=c++11 -emit-llvm -cxx-abi itanium %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -std=c++11 -emit-llvm -triple %itanium_abi_triple %s -o - | FileCheck %s
|
||||
|
||||
// constexpr functions and constexpr constructors are implicitly inline.
|
||||
struct S {
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
// RUN: %clang_cc1 -std=c++98 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -cxx-abi itanium
|
||||
// RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -cxx-abi itanium
|
||||
// RUN: %clang_cc1 -std=c++1y %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -cxx-abi itanium
|
||||
// RUN: %clang_cc1 -std=c++98 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
|
||||
// RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
|
||||
// RUN: %clang_cc1 -std=c++1y %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
|
||||
|
||||
// RUN: %clang_cc1 -std=c++98 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -cxx-abi microsoft -DMSABI
|
||||
// RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -cxx-abi microsoft -DMSABI
|
||||
// RUN: %clang_cc1 -std=c++1y %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -cxx-abi microsoft -DMSABI
|
||||
// RUN: %clang_cc1 -std=c++98 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %ms_abi_triple -DMSABI
|
||||
// RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %ms_abi_triple -DMSABI
|
||||
// RUN: %clang_cc1 -std=c++1y %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %ms_abi_triple -DMSABI
|
||||
|
||||
// PR13819 -- __SIZE_TYPE__ is incompatible.
|
||||
typedef __SIZE_TYPE__ size_t; // expected-error 0-1 {{extension}}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// FIXME: %clang_cc1 -emit-llvm -cxx-abi itanium -o - -std=c++11 %s | FileCheck -check-prefix=CHECK %s
|
||||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium -o - -std=c++11 %s | FileCheck -check-prefix=CHECK-ASSIGN %s
|
||||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium -o - -std=c++11 %s | FileCheck -check-prefix=CHECK-CTOR %s
|
||||
// FIXME: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -o - -std=c++11 %s | FileCheck -check-prefix=CHECK %s
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -o - -std=c++11 %s | FileCheck -check-prefix=CHECK-ASSIGN %s
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -o - -std=c++11 %s | FileCheck -check-prefix=CHECK-CTOR %s
|
||||
|
||||
// construct
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -std=c++11 -cxx-abi itanium -fexceptions -fcxx-exceptions -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -std=c++11 -triple %itanium_abi_triple -fexceptions -fcxx-exceptions -emit-llvm -o - %s | FileCheck %s
|
||||
|
||||
struct A {
|
||||
~A();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: %clang_cc1 -fsyntax-only -cxx-abi itanium -verify %s
|
||||
// RUN: %clang_cc1 -fsyntax-only -cxx-abi microsoft -DMSABI -verify %s
|
||||
// RUN: %clang_cc1 -fsyntax-only -triple %itanium_abi_triple -verify %s
|
||||
// RUN: %clang_cc1 -fsyntax-only -triple %ms_abi_triple -DMSABI -verify %s
|
||||
|
||||
typedef typeof(sizeof(int)) size_t;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -fms-extensions -triple i686-pc-win32 -cxx-abi itanium -emit-llvm %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -fms-extensions -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck %s
|
||||
|
||||
class A {
|
||||
public:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm %s -o %t
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o %t
|
||||
// RUN: FileCheck %s -input-file=%t -check-prefix=CHECK-GLOBALS
|
||||
// RUN: FileCheck %s -input-file=%t -check-prefix=CHECK-1
|
||||
// RUN: FileCheck %s -input-file=%t -check-prefix=CHECK-2
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm %s -o %t
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o %t
|
||||
|
||||
// Note-LABEL: define CLANG_GENERATE_KNOWN_GOOD and compile to generate code
|
||||
// that makes all of the defaulted arguments explicit. The resulting
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -O3 -cxx-abi itanium -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -O3 -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s
|
||||
|
||||
// Is FP_CONTRACT is honored in a simple case?
|
||||
float fp_contract_1(float a, float b, float c) {
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm %s -o - -cxx-abi microsoft \
|
||||
// RUN: -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-mingw32 | FileCheck %s
|
||||
|
||||
void __stdcall f1(void) {}
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm %s -o - | grep _Z1fPA10_1X
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck %s
|
||||
// CHECK: _Z1fPA10_1X
|
||||
|
||||
int __attribute__((overloadable)) f(int x) { return x; }
|
||||
float __attribute__((overloadable)) f(float x) { return x; }
|
||||
double __attribute__((overloadable)) f(double x) { return x; }
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm -o - -fsanitize=thread %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm -o - -O1 %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm -o - -O1 -relaxed-aliasing -fsanitize=thread %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - -fsanitize=thread %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - -O1 %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - -O1 -relaxed-aliasing -fsanitize=thread %s | FileCheck %s
|
||||
//
|
||||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm -o - %s | FileCheck %s --check-prefix=NOTBAA
|
||||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm -o - -O2 -relaxed-aliasing %s | FileCheck %s --check-prefix=NOTBAA
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s --check-prefix=NOTBAA
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - -O2 -relaxed-aliasing %s | FileCheck %s --check-prefix=NOTBAA
|
||||
//
|
||||
// Check that we generate TBAA for vtable pointer loads and stores.
|
||||
// When -fthread-sanitizer is used TBAA should be generated at all opt levels
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -cxx-abi microsoft -triple i686-pc-win32 -disable-llvm-optzns -emit-llvm -o - -O1 %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple i686-pc-win32 -disable-llvm-optzns -emit-llvm -o - -O1 %s | FileCheck %s
|
||||
//
|
||||
// Test that TBAA works in the Microsoft C++ ABI. We used to error out while
|
||||
// attempting to mangle RTTI.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm %s -o - | FileCheck -check-prefix=CHECK-HOST %s
|
||||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm %s -o - -fcuda-is-device | FileCheck -check-prefix=CHECK-DEVICE %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck -check-prefix=CHECK-HOST %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o - -fcuda-is-device | FileCheck -check-prefix=CHECK-DEVICE %s
|
||||
|
||||
#include "../SemaCUDA/cuda.h"
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm %s -o -
|
||||
// RUN: %clang_cc1 -cxx-abi microsoft -fno-rtti -emit-llvm %s -o -
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o -
|
||||
// RUN: %clang_cc1 -triple %ms_abi_triple -fno-rtti -emit-llvm %s -o -
|
||||
|
||||
|
||||
struct CallSite {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm %s -o -
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o -
|
||||
|
||||
// FIXME: Don't assert for non-Win32 triples (PR18251).
|
||||
// RUN: %clang_cc1 -triple i686-pc-win32 -cxx-abi microsoft -fno-rtti -emit-llvm %s -o -
|
||||
// RUN: %clang_cc1 -triple i686-pc-win32 -fno-rtti -emit-llvm %s -o -
|
||||
|
||||
struct A {
|
||||
virtual void Method() = 0;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -o - %s | FileCheck %s
|
||||
|
||||
// CHECK: _ZN11AccessFlags6strlenEv
|
||||
struct AccessFlags {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm -o - %s
|
||||
// RUN: %clang_cc1 -cxx-abi microsoft -fno-rtti -emit-llvm -o - %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - %s
|
||||
// RUN: %clang_cc1 -triple %ms_abi_triple -fno-rtti -emit-llvm -o - %s
|
||||
|
||||
struct A {
|
||||
virtual ~A();
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple %s -o - | FileCheck %s
|
||||
|
||||
// CHECK-NOT: ZN12basic_stringIcEC1Ev
|
||||
// CHECK: ZN12basic_stringIcED1Ev
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 %s -emit-llvm -cxx-abi itanium -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s
|
||||
struct a {
|
||||
static void f();
|
||||
};
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -fcxx-exceptions -fexceptions -emit-llvm-only %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -fcxx-exceptions -fexceptions -emit-llvm-only %s
|
||||
|
||||
// PR5863
|
||||
class E { };
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 %s -emit-llvm -cxx-abi itanium -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s
|
||||
template <typename T> void f(T) {}
|
||||
template <typename T> void f() { }
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -o - %s | FileCheck %s
|
||||
|
||||
namespace N {
|
||||
void free(void *i) {}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -o - %s | FileCheck %s
|
||||
|
||||
// <rdar://problem/8684363>: clang++ not respecting __attribute__((used)) on destructors
|
||||
struct X0 {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 %s -emit-llvm -cxx-abi itanium -o - -fblocks | FileCheck %s
|
||||
// RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - -fblocks | FileCheck %s
|
||||
// rdar://8594790
|
||||
|
||||
struct A {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: %clang_cc1 %s -cxx-abi itanium -emit-llvm -o - -fblocks
|
||||
// RUN: %clang_cc1 %s -cxx-abi microsoft -fno-rtti -emit-llvm -o - -fblocks
|
||||
// RUN: %clang_cc1 %s -triple %itanium_abi_triple -emit-llvm -o - -fblocks
|
||||
// RUN: %clang_cc1 %s -triple %ms_abi_triple -fno-rtti -emit-llvm -o - -fblocks
|
||||
// Just test that this doesn't crash the compiler...
|
||||
|
||||
void func(void*);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -o - %s | FileCheck %s
|
||||
// pr6644
|
||||
|
||||
extern "C" {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -std=c++11 -cxx-abi itanium -emit-llvm %s -o %t
|
||||
// RUN: %clang_cc1 -std=c++11 -triple %itanium_abi_triple -emit-llvm %s -o %t
|
||||
// RUN: FileCheck %s -input-file=%t -check-prefix=CHECK-1
|
||||
// RUN: FileCheck %s -input-file=%t -check-prefix=CHECK-2
|
||||
// RUN: FileCheck %s -input-file=%t -check-prefix=CHECK-3
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck %s
|
||||
|
||||
// Check that the following construct, which is similar to one which occurs
|
||||
// in Firefox, is folded correctly.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s
|
||||
|
||||
const int x = 10;
|
||||
const int y = 20;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s
|
||||
|
||||
// CHECK: @llvm.global_ctors
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
//RUN: %clang_cc1 %s -emit-llvm -o - -triple=i686-unknown-linux | FileCheck --check-prefix=CHECKGEN %s
|
||||
//RUN: %clang_cc1 %s -emit-llvm -o - -triple=thumbv7-apple-ios3.0 -target-abi apcs-gnu | FileCheck --check-prefix=CHECKARM %s
|
||||
//RUN: %clang_cc1 %s -emit-llvm -o - -triple=i386-pc-win32 -cxx-abi microsoft -fno-rtti | FileCheck --check-prefix=CHECKMS %s
|
||||
//RUN: %clang_cc1 %s -emit-llvm -o - -triple=i386-pc-win32 -fno-rtti | FileCheck --check-prefix=CHECKMS %s
|
||||
// FIXME: these tests crash on the bots when run with -triple=x86_64-pc-win32
|
||||
|
||||
// Make sure we attach the 'returned' attribute to the 'this' parameter of
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s
|
||||
|
||||
int x;
|
||||
struct A {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck %s
|
||||
struct A {};
|
||||
A& (A::*x)(const A&) = &A::operator=;
|
||||
// CHECK-LABEL: define linkonce_odr {{.*}}%struct.A* @_ZN1AaSERKS_
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s
|
||||
|
||||
struct A { virtual void a(); };
|
||||
A x(A& y) { return y; }
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 %s -cxx-abi itanium -emit-llvm -o - -test-coverage -femit-coverage-notes | FileCheck %s
|
||||
// RUN: %clang_cc1 %s -triple %itanium_abi_triple -emit-llvm -o - -test-coverage -femit-coverage-notes | FileCheck %s
|
||||
|
||||
extern "C" void test_name1() {}
|
||||
void test_name2() {}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -std=c++11 -cxx-abi itanium -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -std=c++11 -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s
|
||||
|
||||
template <typename T>
|
||||
struct X {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium -std=c++11 %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -std=c++11 %s -o - | FileCheck %s
|
||||
|
||||
int g();
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -std=c++11 -emit-llvm %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++11 -emit-llvm %s -o - | FileCheck %s
|
||||
|
||||
struct A {
|
||||
A(); A(const A&); A(A&&); A &operator=(const A&); A &operator=(A&&); ~A();
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium -std=c++11 -g %s -o -| FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -std=c++11 -g %s -o -| FileCheck %s
|
||||
|
||||
// 16 is DW_ATE_UTF (0x10) encoding attribute.
|
||||
char16_t char_a = u'h';
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm -g %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -g %s -o - | FileCheck %s
|
||||
|
||||
// CHECK: [[ENUMS:![0-9]*]], {{[^,]*}}, {{[^,]*}}, {{[^,]*}}, {{[^,]*}}, {{[^,]*}}} ; [ DW_TAG_compile_unit ]
|
||||
// CHECK: [[ENUMS]] = metadata !{metadata [[E1:![0-9]*]], metadata [[E2:![0-9]*]], metadata [[E3:![0-9]*]]}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// RUN: %clang_cc1 %s -g -cxx-abi itanium -fno-use-cxa-atexit -S -emit-llvm -o - \
|
||||
// RUN: %clang_cc1 %s -g -triple %itanium_abi_triple -fno-use-cxa-atexit -S -emit-llvm -o - \
|
||||
// RUN: | FileCheck %s --check-prefix=CHECK-NOKEXT
|
||||
// RUN: %clang_cc1 %s -g -cxx-abi itanium -fno-use-cxa-atexit -fapple-kext -S -emit-llvm -o - \
|
||||
// RUN: %clang_cc1 %s -g -triple %itanium_abi_triple -fno-use-cxa-atexit -fapple-kext -S -emit-llvm -o - \
|
||||
// RUN: | FileCheck %s --check-prefix=CHECK-KEXT
|
||||
|
||||
class A {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium -std=c++11 -g %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -std=c++11 -g %s -o - | FileCheck %s
|
||||
// CHECK: metadata !"_ZTS1A"} ; [ DW_TAG_class_type ] [A]
|
||||
// CHECK: metadata !"_ZN1A3fooEiS_3$_0", {{.*}} [protected]
|
||||
// CHECK: ![[THISTYPE:[0-9]+]] = {{.*}} ; [ DW_TAG_pointer_type ] {{.*}} [artificial] [from _ZTS1A]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -g -cxx-abi itanium -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -g -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s
|
||||
|
||||
// Make sure that clang outputs distinct debug info for a function
|
||||
// that is inlined twice on the same line. Otherwise it would appear
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -fno-standalone-debug -cxx-abi itanium -g %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm -fno-standalone-debug -triple %itanium_abi_triple -g %s -o - | FileCheck %s
|
||||
|
||||
// Check that this pointer type is TC<int>
|
||||
// CHECK: ![[LINE:[0-9]+]] = {{.*}}"TC<int>", {{.*}} metadata !"_ZTS2TCIiE"} ; [ DW_TAG_class_type ]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 %s -cxx-abi itanium -g -S -emit-llvm -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 %s -triple %itanium_abi_triple -g -S -emit-llvm -o - | FileCheck %s
|
||||
|
||||
struct A {
|
||||
virtual void f();
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -g -cxx-abi itanium -emit-llvm-only %s
|
||||
// RUN: %clang_cc1 -g -triple %itanium_abi_triple -emit-llvm-only %s
|
||||
// Check that we don't crash.
|
||||
// PR12305, PR12315
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -fms-extensions -triple=x86_64-pc-win32 -cxx-abi microsoft -g %s -o - -std=c++11 | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm -fms-extensions -triple=x86_64-pc-win32 -g %s -o - -std=c++11 | FileCheck %s
|
||||
// RUN: not %clang_cc1 -emit-llvm -fms-extensions -triple=x86_64-unknown-unknown -g %s -o - -std=c++11 2>&1 | FileCheck %s --check-prefix=CHECK-ITANIUM
|
||||
|
||||
// CHECK: metadata [[TGIARGS:![0-9]*]], null} ; [ DW_TAG_structure_type ] [tmpl_guid<&__uuidof(uuid)>]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 %s -cxx-abi itanium -emit-llvm -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 %s -triple %itanium_abi_triple -emit-llvm -o - | FileCheck %s
|
||||
|
||||
// Check that call to constructor for struct A is generated correctly.
|
||||
struct A { A(int x = 2); };
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck %s
|
||||
|
||||
template <class T> struct A { A(); };
|
||||
struct B { A<int> x; };
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 %s -cxx-abi itanium -emit-llvm-only
|
||||
// RUN: %clang_cc1 %s -triple %itanium_abi_triple -emit-llvm-only
|
||||
// PR6294
|
||||
|
||||
class A {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 %s -cxx-abi itanium -emit-llvm -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 %s -triple %itanium_abi_triple -emit-llvm -o - | FileCheck %s
|
||||
// PR5967
|
||||
|
||||
extern void* foo;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: %clang_cc1 -std=c++11 -emit-llvm %s -o - -cxx-abi microsoft -fms-extensions -fdelayed-template-parsing -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -std=c++11 -emit-llvm %s -o - -cxx-abi microsoft -fms-extensions -fdelayed-template-parsing -triple=x86_64-pc-win32 | FileCheck -check-prefix X64 %s
|
||||
// RUN: %clang_cc1 -std=c++11 -emit-llvm %s -o - -fms-extensions -fdelayed-template-parsing -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -std=c++11 -emit-llvm %s -o - -fms-extensions -fdelayed-template-parsing -triple=x86_64-pc-win32 | FileCheck -check-prefix X64 %s
|
||||
|
||||
namespace ClassScopeSpecialization {
|
||||
struct Type {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 %s -cxx-abi itanium -emit-llvm -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 %s -triple %itanium_abi_triple -emit-llvm -o - | FileCheck %s
|
||||
|
||||
struct A { int i; };
|
||||
struct B { char j; };
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm-only %s -std=c++11
|
||||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm-only -fno-use-cxa-atexit %s -std=c++11
|
||||
// RUN: %clang_cc1 -cxx-abi microsoft -fno-rtti -emit-llvm-only %s -std=c++11
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm-only %s -std=c++11
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm-only -fno-use-cxa-atexit %s -std=c++11
|
||||
// RUN: %clang_cc1 -triple %ms_abi_triple -fno-rtti -emit-llvm-only %s -std=c++11
|
||||
|
||||
// PR13479: don't crash with -fno-exceptions.
|
||||
namespace {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm-only %s -verify
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm-only %s -verify
|
||||
|
||||
// rdar://15522601
|
||||
class MyClass {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm %s -verify -fno-rtti -cxx-abi itanium -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm %s -verify -fno-rtti -triple %itanium_abi_triple -o - | FileCheck %s
|
||||
// expected-no-diagnostics
|
||||
|
||||
struct A {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 %s -emit-llvm -cxx-abi itanium -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s
|
||||
// PR5695
|
||||
|
||||
struct A { A(const A&); ~A(); };
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -cxx-abi itanium -emit-llvm %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck %s
|
||||
namespace foo {
|
||||
|
||||
// CHECK-NOT: @a = global i32
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple %s -o - | FileCheck %s
|
||||
|
||||
template<typename T> void a(T);
|
||||
template<> void a(int) {}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple %s -o - | FileCheck %s
|
||||
template<typename T, typename U>
|
||||
T* next(T* ptr, const U& diff);
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -o - %s | FileCheck %s
|
||||
|
||||
struct A {
|
||||
A() { x = 10; }
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium %s -o %t
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple %s -o %t
|
||||
|
||||
template<typename T>
|
||||
struct X {
|
||||
|
|
|
@ -7,11 +7,11 @@
|
|||
// FIXME: Don't seek bb labels, like "if.else"
|
||||
// REQUIRES: asserts
|
||||
|
||||
// RUN: %clangxx %s -o - -emit-llvm -S -fprofile-instr-generate -Xclang -cxx-abi -Xclang itanium | FileCheck -check-prefix=PGOGEN %s
|
||||
// RUN: %clangxx %s -o - -emit-llvm -S -fprofile-instr-generate -Xclang -cxx-abi -Xclang itanium | FileCheck -check-prefix=PGOGEN-EXC %s
|
||||
// RUN: %clangxx %s -o - -emit-llvm -S -fprofile-instr-generate -target %itanium_abi_triple | FileCheck -check-prefix=PGOGEN %s
|
||||
// RUN: %clangxx %s -o - -emit-llvm -S -fprofile-instr-generate -target %itanium_abi_triple | FileCheck -check-prefix=PGOGEN-EXC %s
|
||||
|
||||
// RUN: %clang %s -o - -emit-llvm -S -fprofile-instr-use=%S/Inputs/instr-profile.pgodata -Xclang -cxx-abi -Xclang itanium | FileCheck -check-prefix=PGOUSE %s
|
||||
// RUN: %clang %s -o - -emit-llvm -S -fprofile-instr-use=%S/Inputs/instr-profile.pgodata -Xclang -cxx-abi -Xclang itanium | FileCheck -check-prefix=PGOUSE-EXC %s
|
||||
// RUN: %clang %s -o - -emit-llvm -S -fprofile-instr-use=%S/Inputs/instr-profile.pgodata -target %itanium_abi_triple | FileCheck -check-prefix=PGOUSE %s
|
||||
// RUN: %clang %s -o - -emit-llvm -S -fprofile-instr-use=%S/Inputs/instr-profile.pgodata -target %itanium_abi_triple | FileCheck -check-prefix=PGOUSE-EXC %s
|
||||
|
||||
// PGOGEN: @[[THC:__llvm_pgo_ctr[0-9]*]] = private global [11 x i64] zeroinitializer
|
||||
// PGOGEN-EXC: @[[THC:__llvm_pgo_ctr[0-9]*]] = private global [11 x i64] zeroinitializer
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -S -emit-llvm -cxx-abi itanium -o - %s -finstrument-functions | FileCheck %s
|
||||
// RUN: %clang_cc1 -S -emit-llvm -triple %itanium_abi_triple -o - %s -finstrument-functions | FileCheck %s
|
||||
|
||||
// CHECK: @_Z5test1i
|
||||
int test1(int x) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -o - %s | FileCheck %s
|
||||
|
||||
struct Global { Global(); };
|
||||
template<typename T> struct X { X() {} };
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 %s -emit-llvm -cxx-abi itanium -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s
|
||||
|
||||
// CHECK: @_ZTVZ3foovEN1C1DE =
|
||||
// CHECK: @_ZTVZN1A3fooEiE1B =
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -o - %s | FileCheck %s
|
||||
|
||||
// CHECK-LABEL: define void @_Z2f0Pc
|
||||
void f0(char *p) { }
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 %s -emit-llvm -cxx-abi itanium -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s
|
||||
|
||||
// CHECK: @_ZZ4FUNCvEN4SSSSC1ERKf
|
||||
// CHECK: @_ZZ4FUNCvEN4SSSSC2E_0RKf
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 %s -emit-llvm -cxx-abi itanium -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s
|
||||
|
||||
// CHECK: @_ZTVZN1J1KEvE1C = {{.*}} @_ZTIZN1J1KEvE1C {{.*}} @_ZZN1J1KEvENK1C1FEv
|
||||
// CHECK: @_ZTIZN1J1KEvE1C = {{.*}} @_ZTSZN1J1KEvE1C
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 %s -emit-llvm -cxx-abi itanium -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s
|
||||
|
||||
// CHECK: @_ZTVZZ1HvEN1S1IEvE1S =
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -fms-extensions -fno-rtti -emit-llvm %s -o - -cxx-abi microsoft -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -fms-extensions -fno-rtti -emit-llvm %s -o - -triple=i386-pc-win32 | FileCheck %s
|
||||
|
||||
// CHECK: @"\01??_7D@C@?1??foo@@YAXXZ@6B@" =
|
||||
// CHECK: @"\01??_7B@?1??foo@A@@QAEXH@Z@6B@" =
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: %clang_cc1 -emit-llvm %s -o - -cxx-abi microsoft -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -cxx-abi microsoft -triple=x86_64-pc-win32 | FileCheck -check-prefix=X64 %s
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-pc-win32 | FileCheck -check-prefix=X64 %s
|
||||
|
||||
void foo(const unsigned int) {}
|
||||
// CHECK: "\01?foo@@YAXI@Z"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm %s -o - -cxx-abi microsoft -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-pc-win32 | FileCheck %s
|
||||
|
||||
template<class X, class Y, class Z>
|
||||
class A {};
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -fms-extensions -fblocks -emit-llvm %s -o - -cxx-abi microsoft -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -fms-extensions -fblocks -emit-llvm %s -o - -triple=i386-pc-win32 | FileCheck %s
|
||||
|
||||
void f1(const char* a, const char* b) {}
|
||||
// CHECK: "\01?f1@@YAXPBD0@Z"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -std=c++11 -fms-extensions -emit-llvm %s -o - -cxx-abi microsoft -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -std=c++11 -fms-extensions -emit-llvm %s -o - -triple=i386-pc-win32 | FileCheck %s
|
||||
|
||||
// CHECK: "\01?LRef@@YAXAAH@Z"
|
||||
void LRef(int& a) { }
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm %s -o - -cxx-abi microsoft -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-pc-win32 | FileCheck %s
|
||||
|
||||
void a1() {}
|
||||
// CHECK: "\01?a1@@YAXXZ"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -fblocks -emit-llvm %s -o - -cxx-abi microsoft -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -fblocks -emit-llvm %s -o - -triple=i386-pc-win32 | FileCheck %s
|
||||
|
||||
template<typename Signature>
|
||||
class C;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: %clang_cc1 -std=c++11 -emit-llvm %s -o - -cxx-abi microsoft -fms-extensions -fdelayed-template-parsing -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -std=c++11 -emit-llvm %s -o - -cxx-abi microsoft -fms-extensions -fdelayed-template-parsing -triple=x86_64-pc-win32 | FileCheck -check-prefix X64 %s
|
||||
// RUN: %clang_cc1 -std=c++11 -emit-llvm %s -o - -fms-extensions -fdelayed-template-parsing -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -std=c++11 -emit-llvm %s -o - -fms-extensions -fdelayed-template-parsing -triple=x86_64-pc-win32 | FileCheck -check-prefix X64 %s
|
||||
|
||||
template<typename T>
|
||||
class Class {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -fms-extensions -ffreestanding -target-feature +avx -emit-llvm %s -o - -cxx-abi microsoft -triple=i686-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -fms-extensions -ffreestanding -target-feature +avx -emit-llvm %s -o - -triple=i686-pc-win32 | FileCheck %s
|
||||
|
||||
#include <xmmintrin.h>
|
||||
#include <emmintrin.h>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: %clang_cc1 -fblocks -emit-llvm %s -o - -cxx-abi microsoft -triple=i386-pc-win32 -std=c++11 | FileCheck %s
|
||||
// RUN: %clang_cc1 -fblocks -emit-llvm %s -o - -cxx-abi microsoft -triple=x86_64-pc-win32 -std=c++11| FileCheck -check-prefix X64 %s
|
||||
// RUN: %clang_cc1 -fblocks -emit-llvm %s -o - -triple=i386-pc-win32 -std=c++11 | FileCheck %s
|
||||
// RUN: %clang_cc1 -fblocks -emit-llvm %s -o - -triple=x86_64-pc-win32 -std=c++11| FileCheck -check-prefix X64 %s
|
||||
|
||||
int a;
|
||||
// CHECK-DAG: @"\01?a@@3HA"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -std=c++11 -cxx-abi itanium -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -std=c++11 -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s
|
||||
|
||||
template<int *ip> struct IP {};
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: %clang_cc1 %s -DNS=std -emit-llvm -cxx-abi itanium -o - | FileCheck %s --check-prefix=CHECK-STD
|
||||
// RUN: %clang_cc1 %s -DNS=n -emit-llvm -cxx-abi itanium -o - | FileCheck %s --check-prefix=CHECK-N
|
||||
// RUN: %clang_cc1 %s -DNS=std -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s --check-prefix=CHECK-STD
|
||||
// RUN: %clang_cc1 %s -DNS=n -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s --check-prefix=CHECK-N
|
||||
|
||||
// _ZNSt1DISt1CE1iE = std::D<std::C>::i
|
||||
// CHECK-STD: @_ZNSt1DISt1CE1iE =
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -verify -Wno-return-type -Wno-main -std=c++11 -emit-llvm -cxx-abi itanium -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -verify -Wno-return-type -Wno-main -std=c++11 -emit-llvm -triple %itanium_abi_triple -o - %s | FileCheck %s
|
||||
// expected-no-diagnostics
|
||||
|
||||
namespace test1 {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: %clang_cc1 -emit-llvm %s -o - -cxx-abi microsoft \
|
||||
// RUN: -triple=i386-pc-win32 | FileCheck --check-prefix=WIN %s
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-pc-win32 | \
|
||||
// RUN: FileCheck --check-prefix=WIN %s
|
||||
//
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-mingw32 | \
|
||||
// RUN: FileCheck --check-prefix=ITANIUM %s
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -cxx-abi itanium %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple %s -o - | FileCheck %s
|
||||
|
||||
// rdar://7268289
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: %clang_cc1 -fno-rtti -emit-llvm -cxx-abi microsoft -triple=i686-pc-win32 -o - %s 2>/dev/null | FileCheck %s
|
||||
// RUN: %clang_cc1 -fno-rtti -emit-llvm -cxx-abi microsoft -triple=x86_64-pc-win32 -o - %s 2>/dev/null | FileCheck %s -check-prefix CHECK-X64
|
||||
// RUN: %clang_cc1 -fno-rtti -emit-llvm -triple=i686-pc-win32 -o - %s 2>/dev/null | FileCheck %s
|
||||
// RUN: %clang_cc1 -fno-rtti -emit-llvm -triple=x86_64-pc-win32 -o - %s 2>/dev/null | FileCheck %s -check-prefix CHECK-X64
|
||||
|
||||
struct B { char a; };
|
||||
struct A : virtual B {} a;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -mconstructor-aliases -std=c++11 -fexceptions -emit-llvm %s -o - -cxx-abi microsoft -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -mconstructor-aliases -std=c++11 -fexceptions -emit-llvm %s -o - -triple=i386-pc-win32 | FileCheck %s
|
||||
|
||||
struct A {
|
||||
A(int a);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm %s -o - -cxx-abi microsoft -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-pc-win32 | FileCheck %s
|
||||
|
||||
struct ClassWithoutDtor {
|
||||
char x;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -std=c++11 -fno-rtti -emit-llvm %s -o - -cxx-abi microsoft -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -std=c++11 -fno-rtti -emit-llvm %s -o - -triple=i386-pc-win32 | FileCheck %s
|
||||
|
||||
struct A {
|
||||
constexpr A(int x) : x(x) {}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue