[clang] d835dd4 - [analyzer] Produce SymbolCast symbols for integral types in SValBuilder::evalCast
Denys Petrov via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 18 06:08:13 PST 2022
Author: Denys Petrov
Date: 2022-01-18T16:08:04+02:00
New Revision: d835dd4cf5cc32bcc983c23eda60f7b016118dd3
URL: https://github.com/llvm/llvm-project/commit/d835dd4cf5cc32bcc983c23eda60f7b016118dd3
DIFF: https://github.com/llvm/llvm-project/commit/d835dd4cf5cc32bcc983c23eda60f7b016118dd3.diff
LOG: [analyzer] Produce SymbolCast symbols for integral types in SValBuilder::evalCast
Summary: Produce SymbolCast for integral types in `evalCast` function. Apply several simplification techniques while producing the symbols. Added a boolean option `handle-integral-cast-for-ranges` under `-analyzer-config` flag. Disabled the feature by default.
Differential Revision: https://reviews.llvm.org/D105340
Added:
clang/test/Analysis/produce-symbolcast_x64.cpp
clang/test/Analysis/produce-symbolcast_x86.cpp
Modified:
clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
clang/test/Analysis/analyzer-config.c
Removed:
################################################################################
diff --git a/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def b/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
index c0cade46d614..7b976ddeaba2 100644
--- a/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
+++ b/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
@@ -320,6 +320,11 @@ ANALYZER_OPTION(bool, ShouldDisplayCheckerNameForText, "display-checker-name",
"Display the checker name for textual outputs",
true)
+ANALYZER_OPTION(bool, ShouldSupportSymbolicIntegerCasts,
+ "support-symbolic-integer-casts",
+ "Produce cast symbols for integral types.",
+ false)
+
ANALYZER_OPTION(
bool, ShouldConsiderSingleElementArraysAsFlexibleArrayMembers,
"consider-single-element-arrays-as-flexible-array-members",
diff --git a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
index 61dfdbb0688b..1df47dae25bf 100644
--- a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
+++ b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
@@ -96,6 +96,17 @@ class SValBuilder {
QualType OriginalTy);
SVal evalCastSubKind(nonloc::PointerToMember V, QualType CastTy,
QualType OriginalTy);
+ /// Reduce cast expression by removing redundant intermediate casts.
+ /// E.g.
+ /// - (char)(short)(int x) -> (char)(int x)
+ /// - (int)(int x) -> int x
+ ///
+ /// \param V -- SymbolVal, which pressumably contains SymbolCast or any symbol
+ /// that is applicable for cast operation.
+ /// \param CastTy -- QualType, which `V` shall be cast to.
+ /// \return SVal with simplified cast expression.
+ /// \note: Currently only support integral casts.
+ SVal simplifySymbolCast(nonloc::SymbolVal V, QualType CastTy);
public:
SValBuilder(llvm::BumpPtrAllocator &alloc, ASTContext &context,
@@ -103,18 +114,6 @@ class SValBuilder {
virtual ~SValBuilder() = default;
- bool haveSameType(const SymExpr *Sym1, const SymExpr *Sym2) {
- return haveSameType(Sym1->getType(), Sym2->getType());
- }
-
- bool haveSameType(QualType Ty1, QualType Ty2) {
- // FIXME: Remove the second disjunct when we support symbolic
- // truncation/extension.
- return (Context.getCanonicalType(Ty1) == Context.getCanonicalType(Ty2) ||
- (Ty1->isIntegralOrEnumerationType() &&
- Ty2->isIntegralOrEnumerationType()));
- }
-
SVal evalCast(SVal V, QualType CastTy, QualType OriginalTy);
// Handles casts of type CK_IntegralCast.
diff --git a/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp b/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
index 637e4edfd778..302a971a15f2 100644
--- a/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
+++ b/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
@@ -416,7 +416,10 @@ void ExprEngine::VisitCast(const CastExpr *CastE, const Expr *Ex,
case CK_IntegralCast: {
// Delegate to SValBuilder to process.
SVal V = state->getSVal(Ex, LCtx);
- V = svalBuilder.evalIntegralCast(state, V, T, ExTy);
+ if (AMgr.options.ShouldSupportSymbolicIntegerCasts)
+ V = svalBuilder.evalCast(V, T, ExTy);
+ else
+ V = svalBuilder.evalIntegralCast(state, V, T, ExTy);
state = state->BindExpr(CastE, LCtx, V);
Bldr.generateNode(CastE, Pred, state);
continue;
diff --git a/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp b/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
index 8edcef319088..bb3261bae3bf 100644
--- a/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
+++ b/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
@@ -980,15 +980,19 @@ SVal SValBuilder::evalCastSubKind(nonloc::SymbolVal V, QualType CastTy,
} else {
// Symbol to integer, float.
QualType T = Context.getCanonicalType(SE->getType());
- // If types are the same or both are integers, ignore the cast.
- // FIXME: Remove this hack when we support symbolic truncation/extension.
- // HACK: If both castTy and T are integers, ignore the cast. This is
- // not a permanent solution. Eventually we want to precisely handle
- // extension/truncation of symbolic integers. This prevents us from losing
- // precision when we assign 'x = y' and 'y' is symbolic and x and y are
- //
diff erent integer types.
- if (haveSameType(T, CastTy))
- return V;
+
+ // Produce SymbolCast if CastTy and T are
diff erent integers.
+ // NOTE: In the end the type of SymbolCast shall be equal to CastTy.
+ if (T->isIntegralOrEnumerationType() &&
+ CastTy->isIntegralOrEnumerationType()) {
+ AnalyzerOptions &Opts =
+ StateMgr.getOwningEngine().getAnalysisManager().getAnalyzerOptions();
+ // If appropriate option is disabled, ignore the cast.
+ // NOTE: ShouldSupportSymbolicIntegerCasts is `false` by default.
+ if (!Opts.ShouldSupportSymbolicIntegerCasts)
+ return V;
+ return simplifySymbolCast(V, CastTy);
+ }
if (!Loc::isLocType(CastTy))
if (!IsUnknownOriginalType || !CastTy->isFloatingType() ||
T->isFloatingType())
@@ -1004,3 +1008,75 @@ SVal SValBuilder::evalCastSubKind(nonloc::PointerToMember V, QualType CastTy,
// Member pointer to whatever.
return V;
}
+
+SVal clang::ento::SValBuilder::simplifySymbolCast(nonloc::SymbolVal V,
+ QualType CastTy) {
+ // We use seven conditions to recognize a simplification case.
+ // For the clarity let `CastTy` be `C`, SE->getType() - `T`, root type - `R`,
+ // prefix `u` for unsigned, `s` for signed, no prefix - any sign:
+ // E.g. (char)(short)(uint x)
+ // ( sC )( sT )( uR x)
+ //
+ // C === R (the same type)
+ // (char)(char x) -> (char x)
+ // (long)(long x) -> (long x)
+ // Note: Comparisons operators below are for bit width.
+ // C == T
+ // (short)(short)(int x) -> (short)(int x)
+ // (int)(long)(char x) -> (int)(char x) (sizeof(long) == sizeof(int))
+ // (long)(ullong)(char x) -> (long)(char x) (sizeof(long) == sizeof(ullong))
+ // C < T
+ // (short)(int)(char x) -> (short)(char x)
+ // (char)(int)(short x) -> (char)(short x)
+ // (short)(int)(short x) -> (short x)
+ // C > T > uR
+ // (int)(short)(uchar x) -> (int)(uchar x)
+ // (uint)(short)(uchar x) -> (uint)(uchar x)
+ // (int)(ushort)(uchar x) -> (int)(uchar x)
+ // C > sT > sR
+ // (int)(short)(char x) -> (int)(char x)
+ // (uint)(short)(char x) -> (uint)(char x)
+ // C > sT == sR
+ // (int)(char)(char x) -> (int)(char x)
+ // (uint)(short)(short x) -> (uint)(short x)
+ // C > uT == uR
+ // (int)(uchar)(uchar x) -> (int)(uchar x)
+ // (uint)(ushort)(ushort x) -> (uint)(ushort x)
+ // (llong)(ulong)(uint x) -> (llong)(uint x) (sizeof(ulong) == sizeof(uint))
+
+ SymbolRef SE = V.getSymbol();
+ QualType T = Context.getCanonicalType(SE->getType());
+
+ if (T == CastTy)
+ return V;
+
+ if (!isa<SymbolCast>(SE))
+ return makeNonLoc(SE, T, CastTy);
+
+ SymbolRef RootSym = cast<SymbolCast>(SE)->getOperand();
+ QualType RT = RootSym->getType().getCanonicalType();
+
+ BasicValueFactory &BVF = getBasicValueFactory();
+ APSIntType CTy = BVF.getAPSIntType(CastTy);
+ APSIntType TTy = BVF.getAPSIntType(T);
+
+ const auto WC = CTy.getBitWidth();
+ const auto WT = TTy.getBitWidth();
+
+ if (WC <= WT) {
+ const bool isSameType = (RT == CastTy);
+ if (isSameType)
+ return nonloc::SymbolVal(RootSym);
+ return makeNonLoc(RootSym, RT, CastTy);
+ }
+
+ APSIntType RTy = BVF.getAPSIntType(RT);
+ const auto WR = RTy.getBitWidth();
+ const bool UT = TTy.isUnsigned();
+ const bool UR = RTy.isUnsigned();
+
+ if (((WT > WR) && (UR || !UT)) || ((WT == WR) && (UT == UR)))
+ return makeNonLoc(RootSym, RT, CastTy);
+
+ return makeNonLoc(SE, T, CastTy);
+}
diff --git a/clang/test/Analysis/analyzer-config.c b/clang/test/Analysis/analyzer-config.c
index eae554ff8eef..a166b6f8c4a7 100644
--- a/clang/test/Analysis/analyzer-config.c
+++ b/clang/test/Analysis/analyzer-config.c
@@ -115,6 +115,7 @@
// CHECK-NEXT: serialize-stats = false
// CHECK-NEXT: silence-checkers = ""
// CHECK-NEXT: stable-report-filename = false
+// CHECK-NEXT: support-symbolic-integer-casts = false
// CHECK-NEXT: suppress-c++-stdlib = true
// CHECK-NEXT: suppress-inlined-defensive-checks = true
// CHECK-NEXT: suppress-null-return-paths = true
diff --git a/clang/test/Analysis/produce-symbolcast_x64.cpp b/clang/test/Analysis/produce-symbolcast_x64.cpp
new file mode 100644
index 000000000000..d6f527621317
--- /dev/null
+++ b/clang/test/Analysis/produce-symbolcast_x64.cpp
@@ -0,0 +1,1640 @@
+// RUN: %clang_analyze_cc1 -triple x86_64-pc-linux-gnu -analyzer-checker=debug.ExprInspection -analyzer-config support-symbolic-integer-casts=true -verify %s
+
+using uchar = unsigned char;
+using schar = signed char;
+using ushort = unsigned short;
+using uint = unsigned int;
+using ulong = unsigned long;
+using llong = long long;
+using ullong = unsigned long long;
+
+template <typename T>
+void clang_analyzer_dump(T);
+
+void test_schar(schar x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<schar x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{reg_$0<schar x>}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<schar x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<schar x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<schar x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<schar x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0<schar x>))}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) ((unsigned int) (reg_$0<schar x>))}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<schar x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0<schar x>))}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0<schar x>))}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<schar x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<schar x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0<schar x>))}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<schar x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0<schar x>))}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) ((unsigned int) (reg_$0<schar x>))}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<schar x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<schar x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0<schar x>))}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+}
+
+void test_char(char x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<char x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{reg_$0<char x>}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<char x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<char x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<char x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<char x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0<char x>))}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) ((unsigned int) (reg_$0<char x>))}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<char x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0<char x>))}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0<char x>))}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<char x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<char x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0<char x>))}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<char x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0<char x>))}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) ((unsigned int) (reg_$0<char x>))}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<char x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<char x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0<char x>))}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+}
+
+void test_short(short x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<short x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<short x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<short x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<short x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<short x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<short x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{reg_$0<short x>}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0<short x>))}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<short x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) (reg_$0<short x>)}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<short x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<short x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<short x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<short x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<short x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<short x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<short x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0<short x>))}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0<short x>))}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) (reg_$0<short x>)}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0<short x>)}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<short x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<short x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<short x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0<short x>))}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) ((unsigned int) (reg_$0<short x>))}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<short x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0<short x>))}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0<short x>))}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<short x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0<short x>))}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0<short x>))}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0<short x>))}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0<short x>))}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) (reg_$0<short x>)}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<short x>)}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<short x>)}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<short x>)}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<short x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0<short x>))}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<short x>)}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<short x>)}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0<short x>))}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) ((unsigned int) (reg_$0<short x>))}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<short x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0<short x>))}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<short x>)}}
+}
+
+void test_int(int x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<int x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<int x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{reg_$0<int x>}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<int x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<int x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0<int x>))}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<int x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<int x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<int x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<int x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<int x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<int x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<int x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<int x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<int x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{reg_$0<int x>}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<int x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0<int x>))}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{reg_$0<int x>}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{reg_$0<int x>}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{reg_$0<int x>}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<int x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<int x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{reg_$0<int x>}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{reg_$0<int x>}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{reg_$0<int x>}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0<int x>))}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0<int x>))}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0<int x>))}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0<int x>)}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<int x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<int x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<int x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0<int x>))}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) ((unsigned int) (reg_$0<int x>))}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<int x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0<int x>))}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0<int x>))}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0<int x>))}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0<int x>)}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<int x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<int x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<int x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0<int x>))}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0<int x>))}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0<int x>)}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0<int x>))}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0<int x>))}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0<int x>))}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<int x>)}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<int x>)}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<int x>)}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<int x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0<int x>))}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<int x>)}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<int x>)}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0<int x>))}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0<int x>))}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) ((unsigned int) (reg_$0<int x>))}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0<int x>))}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<int x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0<int x>))}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<int x>)}}
+}
+
+void test_long(long x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<long x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<long x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{reg_$0<long x>}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<long x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<long x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0<long x>))}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<long x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<long x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0<long x>))}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<long x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0<long x>))}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<long x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<long x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<long x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<long x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<long x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<long x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<long x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{reg_$0<long x>}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{reg_$0<long x>}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{reg_$0<long x>}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{reg_$0<long x>}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{reg_$0<long x>}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{reg_$0<long x>}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{reg_$0<long x>}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0<long x>))}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0<long x>))}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0<long x>))}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) ((int) (reg_$0<long x>))}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<long x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<long x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<long x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0<long x>))}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0<long x>))}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0<long x>)}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0<long x>))}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0<long x>))}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0<long x>))}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<long x>}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<long x>}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<long x>}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<long x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0<long x>))}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<long x>}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<long x>}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<long x>}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0<long x>))}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) ((int) (reg_$0<long x>))}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<long x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<long x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0<long x>))}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) ((unsigned int) (reg_$0<long x>))}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<long x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0<long x>))}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0<long x>))}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<long x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<long x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<long x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0<long x>))}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0<long x>)}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<long x>)}}
+}
+
+void test_llong(llong x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<llong x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{reg_$0<llong x>}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) ((int) (reg_$0<llong x>))}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) ((unsigned int) (reg_$0<llong x>))}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{reg_$0<llong x>}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{reg_$0<llong x>}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{reg_$0<llong x>}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(unsigned int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{reg_$0<llong x>}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{reg_$0<llong x>}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<llong x>}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<llong x>}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<llong x>}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<llong x>}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<llong x>}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<llong x>}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) ((int) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) ((unsigned int) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<llong x>)}}
+}
+
+void test_uchar(uchar x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<uchar x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{reg_$0<uchar x>}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+}
+
+void test_ushort(ushort x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<ushort x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{reg_$0<ushort x>}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{reg_$0<ushort x>}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{reg_$0<ushort x>}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{reg_$0<ushort x>}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{reg_$0<ushort x>}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{reg_$0<ushort x>}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{reg_$0<ushort x>}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{reg_$0<ushort x>}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{reg_$0<ushort x>}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<ushort x>)}}
+}
+
+void test_uint(uint x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<uint x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<uint x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{reg_$0<uint x>}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<uint x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<uint x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<uint x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<uint x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<uint x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) ((int) (reg_$0<uint x>))}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) ((int) (reg_$0<uint x>))}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{reg_$0<uint x>}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{reg_$0<uint x>}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{reg_$0<uint x>}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{reg_$0<uint x>}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{reg_$0<uint x>}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{reg_$0<uint x>}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) ((int) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<uint x>)}}
+}
+
+void test_ulong(ulong x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<ulong x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{reg_$0<ulong x>}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) ((int) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) ((unsigned int) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) ((int) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{reg_$0<ulong x>}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{reg_$0<ulong x>}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{reg_$0<ulong x>}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{reg_$0<ulong x>}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{reg_$0<ulong x>}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{reg_$0<ulong x>}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<ulong x>)}}
+}
+
+void test_llong(ullong x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<ullong x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{reg_$0<ullong x>}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) ((int) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) ((unsigned int) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) ((int) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) ((int) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) ((unsigned int) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{reg_$0<ullong x>}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{reg_$0<ullong x>}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{reg_$0<ullong x>}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{reg_$0<ullong x>}}
+}
diff --git a/clang/test/Analysis/produce-symbolcast_x86.cpp b/clang/test/Analysis/produce-symbolcast_x86.cpp
new file mode 100644
index 000000000000..0db10072a6eb
--- /dev/null
+++ b/clang/test/Analysis/produce-symbolcast_x86.cpp
@@ -0,0 +1,1640 @@
+// RUN: %clang_analyze_cc1 -triple i386-pc-linux-gnu -analyzer-checker=debug.ExprInspection -analyzer-config support-symbolic-integer-casts=true -verify %s
+
+using uchar = unsigned char;
+using schar = signed char;
+using ushort = unsigned short;
+using uint = unsigned int;
+using ulong = unsigned long;
+using llong = long long;
+using ullong = unsigned long long;
+
+template <typename T>
+void clang_analyzer_dump(T);
+
+void test_schar(schar x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<schar x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{reg_$0<schar x>}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{reg_$0<schar x>}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<schar x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<schar x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<schar x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<schar x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0<schar x>))}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<schar x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0<schar x>))}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0<schar x>))}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) ((unsigned long) (reg_$0<schar x>))}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<schar x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<schar x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0<schar x>))}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<schar x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0<schar x>))}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<schar x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<schar x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<schar x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0<schar x>))}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) ((unsigned long) (reg_$0<schar x>))}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<schar x>)}}
+}
+
+void test_char(char x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<char x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{reg_$0<char x>}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{reg_$0<char x>}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<char x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<char x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<char x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<char x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<char x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<char x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0<char x>))}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<char x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<char x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0<char x>))}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0<char x>))}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) ((unsigned long) (reg_$0<char x>))}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<char x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<char x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0<char x>))}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<char x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0<char x>))}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<char x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<char x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<char x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0<char x>))}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) ((unsigned long) (reg_$0<char x>))}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<char x>)}}
+}
+
+void test_short(short x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<short x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<short x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<short x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<short x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<short x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<short x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<short x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{reg_$0<short x>}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{reg_$0<short x>}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0<short x>))}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<short x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) (reg_$0<short x>)}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<short x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<short x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<short x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<short x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<short x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<short x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<short x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0<short x>))}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0<short x>))}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) (reg_$0<short x>)}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0<short x>)}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<short x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<short x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<short x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0<short x>))}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0<short x>)}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<short x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0<short x>))}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0<short x>))}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<short x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0<short x>))}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0<short x>))}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) ((unsigned long) (reg_$0<short x>))}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0<short x>))}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0<short x>))}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) (reg_$0<short x>)}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<short x>)}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<short x>)}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<short x>)}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<short x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0<short x>))}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<short x>)}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<short x>)}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0<short x>))}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<short x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<short x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<short x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<short x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0<short x>))}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) ((unsigned long) (reg_$0<short x>))}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<short x>)}}
+}
+
+void test_int(int x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<int x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<int x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{reg_$0<int x>}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<int x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<int x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<int x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0<int x>))}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<int x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<int x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<int x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<int x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<int x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<int x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<int x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<int x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<int x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{reg_$0<int x>}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<int x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0<int x>))}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{reg_$0<int x>}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{reg_$0<int x>}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{reg_$0<int x>}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<int x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<int x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{reg_$0<int x>}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{reg_$0<int x>}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{reg_$0<int x>}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0<int x>))}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0<int x>))}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0<int x>))}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0<int x>)}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<int x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<int x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<int x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0<int x>))}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0<int x>)}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<int x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0<int x>))}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0<int x>))}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0<int x>))}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0<int x>)}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<int x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<int x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<int x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0<int x>))}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0<int x>))}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) ((unsigned long) (reg_$0<int x>))}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0<int x>))}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0<int x>))}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0<int x>))}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<int x>)}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<int x>)}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<int x>)}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<int x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0<int x>))}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<int x>)}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<int x>)}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0<int x>))}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0<int x>))}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<int x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0<int x>))}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<int x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<int x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<int x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0<int x>))}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) ((unsigned long) (reg_$0<int x>))}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<int x>)}}
+}
+
+void test_long(long x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<long x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<long x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{reg_$0<long x>}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<long x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<long x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0<long x>))}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<long x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<long x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0<long x>))}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<long x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0<long x>))}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<long x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<long x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<long x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<long x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<long x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<long x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<long x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{reg_$0<long x>}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(char) (reg_$0<long x>)}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(short) (reg_$0<long x>)}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{reg_$0<long x>}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{reg_$0<long x>}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{reg_$0<long x>}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{reg_$0<long x>}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{reg_$0<long x>}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{reg_$0<long x>}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0<long x>))}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0<long x>))}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0<long x>))}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0<long x>)}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<long x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<long x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<long x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0<long x>))}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0<long x>))}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) ((unsigned long) (reg_$0<long x>))}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0<long x>))}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0<long x>))}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0<long x>))}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<long x>}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<long x>}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<long x>}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<long x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0<long x>))}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<long x>}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<long x>}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<long x>}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0<long x>))}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0<long x>)}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<long x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<long x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0<long x>))}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0<long x>)}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<long x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<long x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0<long x>))}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0<long x>)}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<long x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<long x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<long x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<long x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0<long x>))}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) ((unsigned long) (reg_$0<long x>))}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<long x>)}}
+}
+
+void test_llong(llong x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<llong x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{reg_$0<llong x>}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{reg_$0<llong x>}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{reg_$0<llong x>}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(unsigned int) (reg_$0<llong x>)}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{reg_$0<llong x>}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<llong x>}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<llong x>}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<llong x>}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<llong x>}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<llong x>}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<llong x>}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<llong x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) ((long) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<llong x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) ((unsigned long) (reg_$0<llong x>))}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<llong x>)}}
+}
+
+void test_uchar(uchar x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<uchar x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{reg_$0<uchar x>}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{reg_$0<uchar x>}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<uchar x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<uchar x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<uchar x>)}}
+}
+
+void test_ushort(ushort x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<ushort x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{reg_$0<ushort x>}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{reg_$0<ushort x>}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{reg_$0<ushort x>}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{reg_$0<ushort x>}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{reg_$0<ushort x>}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{reg_$0<ushort x>}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{reg_$0<ushort x>}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{reg_$0<ushort x>}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{reg_$0<ushort x>}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<ushort x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<ushort x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0<ushort x>)}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<ushort x>)}}
+}
+
+void test_uint(uint x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<uint x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<uint x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{reg_$0<uint x>}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<uint x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<uint x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<uint x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<uint x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<uint x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) ((int) (reg_$0<uint x>))}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) ((long) (reg_$0<uint x>))}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(signed char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{reg_$0<uint x>}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{reg_$0<uint x>}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{reg_$0<uint x>}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<uint x>)}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{reg_$0<uint x>}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{reg_$0<uint x>}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{reg_$0<uint x>}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<uint x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) ((long) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<uint x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0<uint x>)}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<uint x>)}}
+}
+
+void test_ulong(ulong x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<ulong x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{reg_$0<ulong x>}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) ((int) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) ((long) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<ulong x>)}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(signed char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{reg_$0<ulong x>}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{reg_$0<ulong x>}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{reg_$0<ulong x>}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{reg_$0<ulong x>}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{reg_$0<ulong x>}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{reg_$0<ulong x>}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) ((long) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<ulong x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0<ulong x>)}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0<ulong x>)}}
+}
+
+void test_llong(ullong x) {
+ clang_analyzer_dump(x); // expected-warning{{reg_$0<ullong x>}}
+
+ clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ullong)x); // expected-warning{{reg_$0<ullong x>}}
+
+ clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) ((int) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) ((long) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) ((unsigned long) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0<ullong x>)}}
+ clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0<ullong x>)}}
+
+ clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) ((long) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ullong)(llong)x); // expected-warning{{reg_$0<ullong x>}}
+ clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) ((unsigned long) (reg_$0<ullong x>))}}
+ clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{reg_$0<ullong x>}}
+}
More information about the cfe-commits
mailing list