// RUN: %clang_cc1 -verify -fsyntax-only -Wstring-conversion %s

void do_nothing();
void assert_error();

#define assert1(expr) \
  if (expr)           \
    do_nothing();     \
  else                \
  assert_error()

#define assert2(expr) \
  ((expr) ? do_nothing() : assert_error())

// Expection for common assert form.
void test1() {
  assert1(0 && "foo");
  assert1("foo" && 0);
  assert1(0 || "foo"); // expected-warning {{string literal}}
  assert1("foo"); // expected-warning {{string literal}}

  assert2(0 && "foo");
  assert2("foo" && 0);
  assert2(0 || "foo"); // expected-warning {{string literal}}
  assert2("foo"); // expected-warning {{string literal}}
}

void test2() {
  if ("hi") {}           // expected-warning {{string literal}}
  while ("hello") {}     // expected-warning {{string literal}}
  for (;"howdy";) {}     // expected-warning {{string literal}}
  do { } while ("hey");  // expected-warning {{string literal}}
  int x = "hey" ? 1 : 2; // expected-warning {{string literal}}
}
