Mercurial > hg > CbC > CbC_llvm
view clang/test/Sema/warn-string-conversion.c @ 207:2e18cbf3894f
LLVM12
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 08 Jun 2021 06:07:14 +0900 |
parents | 1d019706d866 |
children | c4bab56944e8 |
line wrap: on
line source
// 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()) // Exception 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}} }