| 12345678910111213141516171819202122232425262728293031323334 |
- // 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}}
- }
|