Imported Upstream version 6.10.0.49

Former-commit-id: 1d6753294b2993e1fbf92de9366bb9544db4189b
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2020-01-16 16:38:04 +00:00
parent d94e79959b
commit 468663ddbb
48518 changed files with 2789335 additions and 61176 deletions

View File

@@ -0,0 +1,7 @@
[
{
"directory": "$test_dir/build",
"command": "clang++ -o test.o -I../include $test_dir/src/test.cpp",
"file": "$test_dir/src/test.cpp"
}
]

View File

@@ -0,0 +1,9 @@
namespace a {
enum E1 { Green, Red };
enum class E2 { Yellow };
class C {
enum E3 { Blue };
};
} // namespace a

View File

@@ -0,0 +1,5 @@
#include "function_test.h"
void f() {}
void A::f() {}

View File

@@ -0,0 +1,14 @@
void f();
inline int g() { return 0; }
template<typename T>
void h(T t) {}
template<>
void h(int t) {}
class A {
public:
void f();
};

View File

@@ -0,0 +1,97 @@
#include "helper_decls_test.h"
namespace {
class HelperC1 {
public:
static int I;
};
int HelperC1::I = 0;
class HelperC2 {};
class HelperC3 {
public:
static int I;
};
int HelperC3::I = 0;
void HelperFun1() {}
void HelperFun2() { HelperFun1(); }
const int K1 = 1;
} // namespace
static const int K2 = 2;
static void HelperFun3() { K2; }
namespace a {
static const int K3 = 3;
static const int K4 = HelperC3::I;
static const int K5 = 5;
static const int K6 = 6;
static void HelperFun4() {}
static void HelperFun6() {}
void Class1::f() { HelperFun2(); }
void Class2::f() {
HelperFun1();
HelperFun3();
}
void Class3::f() { HelperC1::I; }
void Class4::f() { HelperC2 c2; }
void Class5::f() {
int Result = K1 + K2 + K3;
HelperFun4();
}
int Class6::f() {
int R = K4;
return R;
}
int Class7::f() {
int R = K6;
return R;
}
int Class7::g() {
HelperFun6();
return 1;
}
static int HelperFun5() {
int R = K5;
return R;
}
void Fun1() { HelperFun5(); }
} // namespace a
namespace b {
namespace {
void HelperFun7();
class HelperC4;
} // namespace
void Fun3() {
HelperFun7();
HelperC4 *t;
}
namespace {
void HelperFun7() {}
class HelperC4 {};
} // namespace
} // namespace b

View File

@@ -0,0 +1,39 @@
namespace a {
class Class1 {
void f();
};
class Class2 {
void f();
};
class Class3 {
void f();
};
class Class4 {
void f();
};
class Class5 {
void f();
};
class Class6 {
int f();
};
class Class7 {
int f();
int g();
};
void Fun1();
inline void Fun2() {}
} // namespace a
namespace b {
void Fun3();
} // namespace b

View File

@@ -0,0 +1,13 @@
#include "macro_helper_test.h"
#define DEFINE(name) \
namespace ns { \
static const bool t1 = false; \
bool t2_##name = t1; \
bool t3_##name = t1; \
} \
using ns::t2_##name;
DEFINE(test)
void f1() {}

View File

@@ -0,0 +1,2 @@
class A {};
void f1();

View File

@@ -0,0 +1,52 @@
#include "multiple_class_test.h"
using a::Move1;
using namespace a;
using A = a::Move1;
static int g = 0;
namespace a {
int Move1::f() {
return 0;
}
} // namespace a
namespace {
using a::Move1;
using namespace a;
static int k = 0;
} // namespace
namespace b {
using a::Move1;
using namespace a;
using T = a::Move1;
int Move2::f() {
return 0;
}
} // namespace b
namespace c {
int Move3::f() {
using a::Move1;
using namespace b;
return 0;
}
int Move4::f() {
return k;
}
int EnclosingMove5::a = 1;
int EnclosingMove5::Nested::f() {
return g;
}
int EnclosingMove5::Nested::b = 1;
int NoMove::f() {
static int F = 0;
return g;
}
} // namespace c

View File

@@ -0,0 +1,39 @@
namespace a {
class Move1 {
public:
int f();
};
} // namespace a
namespace b {
class Move2 {
public:
int f();
};
} // namespace b
namespace c {
class Move3 {
public:
int f();
};
class Move4 {
public:
int f();
};
class EnclosingMove5 {
public:
class Nested {
int f();
static int b;
};
static int a;
};
class NoMove {
public:
int f();
};
} // namespace c

View File

@@ -0,0 +1,13 @@
#include "template_class_test.h"
template <typename T>
void A<T>::g() {}
template <typename T>
template <typename U>
void A<T>::k() {}
template <typename T>
int A<T>::c = 2;
void B::f() {}

View File

@@ -0,0 +1,30 @@
#ifndef TEMPLATE_CLASS_TEST_H // comment 1
#define TEMPLATE_CLASS_TEST_H
template <typename T>
class A {
public:
void f();
void g();
template <typename U> void h();
template <typename U> void k();
static int b;
static int c;
};
template <typename T>
void A<T>::f() {}
template <typename T>
template <typename U>
void A<T>::h() {}
template <typename T>
int A<T>::b = 2;
class B {
public:
void f();
};
#endif // TEMPLATE_CLASS_TEST_H

View File

@@ -0,0 +1,11 @@
#include "test.h"
#include "test2.h"
namespace a {
int Foo::f() {
return 0;
}
int Foo::f2(int a, int b) {
return a + b;
}
} // namespace a

View File

@@ -0,0 +1,10 @@
#ifndef TEST_H // comment 1
#define TEST_H
namespace a {
class Foo {
public:
int f();
int f2(int a, int b);
};
} // namespace a
#endif // TEST_H

View File

@@ -0,0 +1,11 @@
typedef int Int1;
using Int2 = int;
template<class T>
struct A {};
template <class T> using B = A<T>;
class C {
typedef int Int3;
};

View File

@@ -0,0 +1,6 @@
#include "var_test.h"
namespace a{
int kGlobalInt = 1;
const char *const kGlobalStr = "Hello";
}

View File

@@ -0,0 +1,11 @@
namespace a {
extern int kGlobalInt;
extern const char *const kGlobalStr;
}
int kEvilInt = 2;
inline void f1() {
int kGlobalInt = 3;
const char *const kGlobalStr = "Hello2";
}