Migrate, FileCheckize and update:

2003-11-02-WeakLinkage.cpp
2003-11-18-PtrMemConstantInitializer.cpp
2003-11-25-ReturningOpaqueByValue.cpp
2003-11-27-MultipleInheritanceThunk.cpp
2003-11-29-DuplicatedCleanupTest.cpp
2003-12-08-ArrayOfPtrToMemberFunc.cpp
2004-01-11-DynamicInitializedConstant.cpp

from llvm/test/FrontendC++.

llvm-svn: 138162
This commit is contained in:
Eric Christopher 2011-08-20 00:17:18 +00:00
parent 20f19d1d02
commit aab7dffa12
7 changed files with 124 additions and 0 deletions

View File

@ -0,0 +1,13 @@
// RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s
// The template should compile to linkonce linkage, not weak linkage.
// CHECK-NOT: weak
template<class T>
void thefunc();
template<class T>
inline void thefunc() {}
void test() {
thefunc<int>();
}

View File

@ -0,0 +1,13 @@
// RUN: %clang_cc1 -emit-llvm %s -o -
struct Gfx {
void opMoveSetShowText();
};
struct Operator {
void (Gfx::*func)();
};
Operator opTab[] = {
{&Gfx::opMoveSetShowText},
};

View File

@ -0,0 +1,11 @@
// RUN: %clang_cc1 -emit-llvm %s -o -
#include <vector>
std::vector<int> my_method ();
int
main ()
{
my_method ();
return 0;
}

View File

@ -0,0 +1,28 @@
// RUN: %clang_cc1 -emit-llvm %s -o -
struct CallSite {
int X;
CallSite(const CallSite &CS);
};
struct AliasAnalysis {
int TD;
virtual int getModRefInfo(CallSite CS);
};
struct Pass {
int X;
virtual int foo();
};
struct AliasAnalysisCounter : public Pass, public AliasAnalysis {
int getModRefInfo(CallSite CS) {
return 0;
}
};
AliasAnalysisCounter AAC;

View File

@ -0,0 +1,41 @@
// RUN: %clang_cc1 -emit-llvm %s -o -
void doesntThrow() throw();
struct F {
~F() { doesntThrow(); }
};
void atest() {
F A;
lab:
F B;
goto lab;
}
void test(int val) {
label: {
F A;
F B;
if (val == 0) goto label;
if (val == 1) goto label;
}
}
void test3(int val) {
label: {
F A;
F B;
if (val == 0) { doesntThrow(); goto label; }
if (val == 1) { doesntThrow(); goto label; }
}
}
void test4(int val) {
label: {
F A;
F B;
if (val == 0) { F C; goto label; }
if (val == 1) { F D; goto label; }
}
}

View File

@ -0,0 +1,12 @@
// RUN: %clang_cc1 -emit-llvm %s -o -
struct Evil {
void fun ();
};
int foo();
typedef void (Evil::*memfunptr) ();
static memfunptr jumpTable[] = { &Evil::fun };
void Evil::fun() {
(this->*jumpTable[foo()]) ();
}

View File

@ -0,0 +1,6 @@
// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s
// CHECK-NOT: constant
extern int X;
const int Y = X;
const int* foo() { return &Y; }