brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 809fbc5 Raw
35 lines · c
1// RUN: %clang_cc1 -verify -fsyntax-only -Wstring-conversion %s2 3void do_nothing(void);4void assert_error(void);5 6#define assert1(expr) \7  if (expr)           \8    do_nothing();     \9  else                \10  assert_error()11 12#define assert2(expr) \13  ((expr) ? do_nothing() : assert_error())14 15// Exception for common assert form.16void test1(void) {17  assert1(0 && "foo");18  assert1("foo" && 0);19  assert1(0 || "foo"); // expected-warning {{string literal}}20  assert1("foo"); // expected-warning {{string literal}}21 22  assert2(0 && "foo");23  assert2("foo" && 0);24  assert2(0 || "foo"); // expected-warning {{string literal}}25  assert2("foo"); // expected-warning {{string literal}}26}27 28void test2(void) {29  if ("hi") {}           // expected-warning {{string literal}}30  while ("hello") {}     // expected-warning {{string literal}}31  for (;"howdy";) {}     // expected-warning {{string literal}}32  do { } while ("hey");  // expected-warning {{string literal}}33  int x = "hey" ? 1 : 2; // expected-warning {{string literal}}34}35