Mercurial > hg > CbC > CbC_llvm
view clang/test/Sema/warn-string-conversion.c @ 236:c4bab56944e8 llvm-original
LLVM 16
author | kono |
---|---|
date | Wed, 09 Nov 2022 17:45:10 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
// RUN: %clang_cc1 -verify -fsyntax-only -Wstring-conversion %s void do_nothing(void); void assert_error(void); #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(void) { 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(void) { 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}} }