// RUN: %clang_cc1 -fsyntax-only -fobjc-arc -verify %s // expected-no-diagnostics struct Trivial { int x; }; struct NonTrivial { id x; }; int trivial_assign[__has_trivial_assign(struct Trivial) ? 1 : -1]; int trivial_move_assign[__has_trivial_move_assign(struct Trivial) ? 1 : -1]; int trivial_copy_constructor[__has_trivial_copy(struct Trivial) ? 1 : -1]; int trivial_move_constructor[__has_trivial_move_constructor(struct Trivial) ? 1 : -1]; int trivial_constructor[__has_trivial_constructor(struct Trivial) ? 1 : -1]; int trivial_destructor[__has_trivial_destructor(struct Trivial) ? 1 : -1]; int non_trivial_assign[__has_trivial_assign(struct NonTrivial) ? -1 : 1]; int non_trivial_move_assign[__has_trivial_move_assign(struct NonTrivial) ? -1 : 1]; int non_trivial_copy_constructor[__has_trivial_copy(struct NonTrivial) ? -1 : 1]; int non_trivial_move_constructor[__has_trivial_move_constructor(struct NonTrivial) ? -1 : 1]; int non_trivial_constructor[__has_trivial_constructor(struct NonTrivial) ? -1 : 1]; int non_trivial_destructor[__has_trivial_destructor(struct NonTrivial) ? -1 : 1];