// RUN: %clang_cc1 -fsyntax-only -verify -Wconversion -triple x86_64-apple-darwin %s -Wno-unreachable-code
+#include <limits.h>
+
#define BIG 0x7f7f7f7f7f7f7f7fL
void test0(char c, short s, int i, long l, long long ll) {
unsigned char x3 = u64 & mask;
return x1 + x2 + x3;
}
+
+// <rdar://problem/7631400>
+void test_7631400(void) {
+ // This should show up despite the caret being inside a macro substitution
+ char s = LONG_MAX; // expected-warning {{implicit cast loses integer precision: 'long' to 'char'}}
+}