// Test this without pch.
// RUN: %clang_cc1 -fms-extensions -include %S/cxx-traits.h -std=c++11 -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
// expected-no-diagnostics
bool _Is_pod_comparator = n::__is_pod<int>::__value;
bool _Is_empty_check = n::__is_empty<int>::__value;
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_abstract_result = ;
bool _is_aggregate_result = ;
bool _is_arithmetic_result = ;
bool _is_array_result = ;
bool _is_assignable_result = ;
bool _is_base_of_result = ;
bool _is_class_result = ;
bool _is_complete_type_result = ;
bool _is_compound_result = ;
bool _is_const_result = ;
bool _is_constructible_result = ;
bool _is_convertible_result = ;
bool _is_convertible_to_result = ;
bool _is_destructible_result = ;
bool _is_empty_result = ;
bool _is_enum_result = ;
bool _is_floating_point_result = ;
bool _is_final_result = ;
bool _is_function_result = ;
bool _is_fundamental_result = ;
bool _is_integral_result = ;
bool _is_interface_class_result = ;
bool _is_literal_result = ;
bool _is_lvalue_expr_result = ;
bool _is_lvalue_reference_result = ;
bool _is_member_function_pointer_result = ;
bool _is_member_object_pointer_result = ;
bool _is_member_pointer_result = ;
bool _is_nothrow_assignable_result = ;
bool _is_nothrow_constructible_result = ;
bool _is_nothrow_destructible_result = ;
bool _is_object_result = ;
bool _is_pod_result = ;
bool _is_pointer_result = ;
bool _is_polymorphic_result = ;
bool _is_reference_result = ;
bool _is_rvalue_expr_result = ;
bool _is_rvalue_reference_result = ;
bool _is_same_result = ;
bool _is_scalar_result = ;
bool _is_sealed_result = ;
bool _is_signed_result = ;
bool _is_standard_layout_result = ;
bool _is_trivial_result = ;
bool _is_trivially_assignable_result = ;
bool _is_trivially_constructible_result = ;
bool _is_trivially_copyable_result = ;
bool _is_union_result = ;
bool _is_unsigned_result = ;
bool _is_void_result = ;
bool _is_volatile_result = ;