summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/PCH/cxx-traits.cpp55
-rw-r--r--clang/test/PCH/cxx-traits.h49
2 files changed, 100 insertions, 4 deletions
diff --git a/clang/test/PCH/cxx-traits.cpp b/clang/test/PCH/cxx-traits.cpp
index 42656a3ad5f..fc3e1335dd6 100644
--- a/clang/test/PCH/cxx-traits.cpp
+++ b/clang/test/PCH/cxx-traits.cpp
@@ -1,8 +1,8 @@
// Test this without pch.
-// RUN: %clang_cc1 -include %S/cxx-traits.h -std=c++11 -fsyntax-only -verify %s
+// RUN: %clang_cc1 -fms-extensions -include %S/cxx-traits.h -std=c++11 -fsyntax-only -verify %s
-// RUN: %clang_cc1 -x c++-header -std=c++11 -emit-pch -o %t %S/cxx-traits.h
-// RUN: %clang_cc1 -std=c++11 -include-pch %t -DPCH -fsyntax-only -verify %s
+// RUN: %clang_cc1 -fms-extensions -x c++-header -std=c++11 -emit-pch -o %t %S/cxx-traits.h
+// RUN: %clang_cc1 -fms-extensions -std=c++11 -include-pch %t -DPCH -fsyntax-only -verify %s
#ifdef PCH
// expected-no-diagnostics
@@ -15,5 +15,52 @@ bool default_construct_int = n::is_trivially_constructible<int>::value;
bool copy_construct_int = n::is_trivially_constructible<int, const int&>::value;
// The built-ins should still work too:
-bool _is_pod_result = __is_pod(int);
+bool _is_abstract_result = __is_abstract(int);
+bool _is_arithmetic_result = __is_arithmetic(int);
+bool _is_array_result = __is_array(int);
+bool _is_base_of_result = __is_base_of(int, int);
+bool _is_class_result = __is_class(int);
+bool _is_complete_type_result = __is_complete_type(int);
+bool _is_compound_result = __is_compound(int);
+bool _is_const_result = __is_const(int);
+bool _is_constructible_result = __is_constructible(int);
+bool _is_convertible_result = __is_convertible(int, int);
+bool _is_convertible_to_result = __is_convertible_to(int, int);
+bool _is_destructible_result = __is_destructible(int);
bool _is_empty_result = __is_empty(int);
+bool _is_enum_result = __is_enum(int);
+bool _is_floating_point_result = __is_floating_point(int);
+bool _is_final_result = __is_final(int);
+bool _is_function_result = __is_function(int);
+bool _is_fundamental_result = __is_fundamental(int);
+bool _is_integral_result = __is_integral(int);
+bool _is_interface_class_result = __is_interface_class(int);
+bool _is_literal_result = __is_literal(int);
+bool _is_lvalue_expr_result = __is_lvalue_expr(0);
+bool _is_lvalue_reference_result = __is_lvalue_reference(int);
+bool _is_member_function_pointer_result = __is_member_function_pointer(int);
+bool _is_member_object_pointer_result = __is_member_object_pointer(int);
+bool _is_member_pointer_result = __is_member_pointer(int);
+bool _is_nothrow_assignable_result = __is_nothrow_assignable(int, int);
+bool _is_nothrow_constructible_result = __is_nothrow_constructible(int);
+bool _is_nothrow_destructible_result = __is_nothrow_destructible(int);
+bool _is_object_result = __is_object(int);
+bool _is_pod_result = __is_pod(int);
+bool _is_pointer_result = __is_pointer(int);
+bool _is_polymorphic_result = __is_polymorphic(int);
+bool _is_reference_result = __is_reference(int);
+bool _is_rvalue_expr_result = __is_rvalue_expr(0);
+bool _is_rvalue_reference_result = __is_rvalue_reference(int);
+bool _is_same_result = __is_same(int, int);
+bool _is_scalar_result = __is_scalar(int);
+bool _is_sealed_result = __is_sealed(int);
+bool _is_signed_result = __is_signed(int);
+bool _is_standard_layout_result = __is_standard_layout(int);
+bool _is_trivial_result = __is_trivial(int);
+bool _is_trivially_assignable_result = __is_trivially_assignable(int, int);
+bool _is_trivially_constructible_result = __is_trivially_constructible(int);
+bool _is_trivially_copyable_result = __is_trivially_copyable(int);
+bool _is_union_result = __is_union(int);
+bool _is_unsigned_result = __is_unsigned(int);
+bool _is_void_result = __is_void(int);
+bool _is_volatile_result = __is_volatile(int);
diff --git a/clang/test/PCH/cxx-traits.h b/clang/test/PCH/cxx-traits.h
index 59ba513ef1d..21324768186 100644
--- a/clang/test/PCH/cxx-traits.h
+++ b/clang/test/PCH/cxx-traits.h
@@ -17,4 +17,53 @@ struct is_trivially_constructible {
static const bool value = __is_trivially_constructible(T, Args...);
};
+struct __is_abstract {}; // expected-warning {{made available}}
+struct __is_arithmetic {}; // expected-warning {{made available}}
+struct __is_array {}; // expected-warning {{made available}}
+struct __is_base_of {}; // expected-warning {{made available}}
+struct __is_class {}; // expected-warning {{made available}}
+struct __is_complete_type {}; // expected-warning {{made available}}
+struct __is_compound {}; // expected-warning {{made available}}
+struct __is_const {}; // expected-warning {{made available}}
+struct __is_constructible {}; // expected-warning {{made available}}
+struct __is_convertible {}; // expected-warning {{made available}}
+struct __is_convertible_to {}; // expected-warning {{made available}}
+struct __is_destructible {}; // expected-warning {{made available}}
+struct __is_enum {}; // expected-warning {{made available}}
+struct __is_floating_point {}; // expected-warning {{made available}}
+struct __is_final {}; // expected-warning {{made available}}
+struct __is_function {}; // expected-warning {{made available}}
+struct __is_fundamental {}; // expected-warning {{made available}}
+struct __is_integral {}; // expected-warning {{made available}}
+struct __is_interface_class {}; // expected-warning {{made available}}
+struct __is_literal {}; // expected-warning {{made available}}
+struct __is_lvalue_expr {}; // expected-warning {{made available}}
+struct __is_lvalue_reference {}; // expected-warning {{made available}}
+struct __is_member_function_pointer {}; // expected-warning {{made available}}
+struct __is_member_object_pointer {}; // expected-warning {{made available}}
+struct __is_member_pointer {}; // expected-warning {{made available}}
+struct __is_nothrow_assignable {}; // expected-warning {{made available}}
+struct __is_nothrow_constructible {}; // expected-warning {{made available}}
+struct __is_nothrow_destructible {}; // expected-warning {{made available}}
+struct __is_object {}; // expected-warning {{made available}}
+struct __is_pointer {}; // expected-warning {{made available}}
+struct __is_polymorphic {}; // expected-warning {{made available}}
+struct __is_reference {}; // expected-warning {{made available}}
+struct __is_rvalue_expr {}; // expected-warning {{made available}}
+struct __is_rvalue_reference {}; // expected-warning {{made available}}
+struct __is_same {}; // expected-warning {{made available}}
+struct __is_scalar {}; // expected-warning {{made available}}
+struct __is_sealed {}; // expected-warning {{made available}}
+struct __is_signed {}; // expected-warning {{made available}}
+struct __is_standard_layout {}; // expected-warning {{made available}}
+struct __is_trivial {}; // expected-warning {{made available}}
+struct __is_trivially_assignable {}; // expected-warning {{made available}}
+struct __is_trivially_constructible {}; // expected-warning {{made available}}
+struct __is_trivially_copyable {}; // expected-warning {{made available}}
+struct __is_union {}; // expected-warning {{made available}}
+struct __is_unsigned {}; // expected-warning {{made available}}
+struct __is_void {}; // expected-warning {{made available}}
+struct __is_volatile {}; // expected-warning {{made available}}
+
+
}
OpenPOWER on IntegriCloud