// RUN: %clang_cc1 %s -std=c++1z -fsyntax-only -verify
//
// Test the constant folding of builtin complex numbers.
static_assert;
static_assert; // expected-error {{static assertion}}
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
// Walk around the complex plane stepping between angular differences and
// equality.
static_assert; // expected-error {{static assertion}}
static_assert;
static_assert; // expected-error {{static assertion}}
static_assert;
static_assert; // expected-error {{static assertion}}
static_assert;
static_assert; // expected-error {{static assertion}}
static_assert;
static_assert; // expected-error {{static assertion}}
static_assert;
static_assert; // expected-error {{static assertion}}
static_assert;
static_assert; // expected-error {{static assertion}}
static_assert;
static_assert; // expected-error {{static assertion}}
static_assert;
// Test basic mathematical folding of both complex and real operands.
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
// Test that infinities are preserved, don't turn into NaNs, and do form zeros
// when the divisor.
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;