Index: clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def =================================================================== --- clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def +++ clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def @@ -320,6 +320,11 @@ "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", Index: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h =================================================================== --- clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h +++ clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h @@ -96,6 +96,17 @@ 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 @@ 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. Index: clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp =================================================================== --- clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp +++ clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp @@ -416,7 +416,10 @@ 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; Index: clang/lib/StaticAnalyzer/Core/SValBuilder.cpp =================================================================== --- clang/lib/StaticAnalyzer/Core/SValBuilder.cpp +++ clang/lib/StaticAnalyzer/Core/SValBuilder.cpp @@ -971,15 +971,19 @@ } 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 - // different integer types. - if (haveSameType(T, CastTy)) - return V; + + // Produce SymbolCast if CastTy and T are different 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()) @@ -995,3 +999,75 @@ // 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(SE)) + return makeNonLoc(SE, T, CastTy); + + SymbolRef RootSym = cast(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); +} Index: clang/test/Analysis/analyzer-config.c =================================================================== --- clang/test/Analysis/analyzer-config.c +++ clang/test/Analysis/analyzer-config.c @@ -112,6 +112,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 Index: clang/test/Analysis/produce-symbolcast_x64.cpp =================================================================== --- /dev/null +++ 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 +void clang_analyzer_dump(T); + +void test_schar(schar x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0)}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_char(char x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(char)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(short)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0)}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_short(short x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0))}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0))}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0))}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0))}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0))}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0))}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0)}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0))}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_int(int x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0))}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0))}} + clang_analyzer_dump((int)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((int)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0))}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0))}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0))}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0))}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0))}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0))}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0))}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0))}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0)}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0))}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0))}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0))}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_long(long x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0))}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0))}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0))}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((long)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((long)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0))}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0))}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) ((int) (reg_$0))}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0))}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0))}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0))}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0))}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0))}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) ((int) (reg_$0))}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0))}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0))}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_llong(llong x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0))}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0))}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0))}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0))}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0))}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0))}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) ((int) (reg_$0))}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0))}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0))}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0))}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0))}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0))}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) ((int) (reg_$0))}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0))}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0))}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_uchar(uchar x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0))}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0))}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0))}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0))}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0))}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0))}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0))}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0)}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0))}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_ushort(ushort x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0))}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0))}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0))}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0))}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0))}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0))}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0))}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0))}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0))}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0))}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0))}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0)}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0))}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0))}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0))}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_uint(uint x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0))}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0))}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0))}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0))}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0))}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0))}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) ((int) (reg_$0))}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0))}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0))}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) ((int) (reg_$0))}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0))}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0))}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) ((int) (reg_$0))}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0))}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0))}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_ulong(ulong x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0))}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0))}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0))}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0))}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0))}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0))}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) ((int) (reg_$0))}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0))}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0))}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) ((int) (reg_$0))}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0))}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0))}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0))}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0)}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0))}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0))}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_llong(ullong x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0))}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0))}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0))}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0))}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0))}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0))}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) ((int) (reg_$0))}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0))}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0))}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) ((int) (reg_$0))}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0))}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0))}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0))}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0)}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0))}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0))}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) ((int) (reg_$0))}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0))}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0))}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{reg_$0}} +} Index: clang/test/Analysis/produce-symbolcast_x86.cpp =================================================================== --- /dev/null +++ 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 +void clang_analyzer_dump(T); + +void test_schar(schar x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) ((unsigned long) (reg_$0))}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0)}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) ((unsigned long) (reg_$0))}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_char(char x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(char)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(short)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) ((unsigned long) (reg_$0))}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0)}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) ((unsigned long) (reg_$0))}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_short(short x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0))}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0))}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0))}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0))}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) ((unsigned long) (reg_$0))}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0))}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0))}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0)}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0))}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) ((unsigned long) (reg_$0))}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_int(int x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0))}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0))}} + clang_analyzer_dump((int)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((int)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0))}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0))}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0))}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0))}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0))}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) ((unsigned long) (reg_$0))}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0))}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0))}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0))}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0)}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0))}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0))}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0))}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) ((unsigned long) (reg_$0))}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_long(long x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0))}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0))}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0))}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((long)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((long)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0))}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0))}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) ((unsigned long) (reg_$0))}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0))}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0))}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0))}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0))}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0))}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0))}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) ((unsigned long) (reg_$0))}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_llong(llong x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0))}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0))}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0))}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0))}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0))}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0))}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0))}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0))}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0))}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0))}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0))}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0))}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0))}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) ((long) (reg_$0))}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) ((unsigned long) (reg_$0))}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_uchar(uchar x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0))}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0))}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0))}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0))}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0))}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0))}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0))}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0)}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0))}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_ushort(ushort x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0))}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0))}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0))}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0))}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0))}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0))}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0))}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0))}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0))}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0))}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0))}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0)}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0))}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0))}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0))}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_uint(uint x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0))}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0))}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0))}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0))}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0))}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0))}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0))}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0))}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) ((int) (reg_$0))}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) ((long) (reg_$0))}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0))}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0))}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0))}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0))}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) ((long) (reg_$0))}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_ulong(ulong x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0))}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0))}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0))}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0))}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0))}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0))}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0))}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0))}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) ((int) (reg_$0))}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) ((long) (reg_$0))}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0))}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0))}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0))}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0)}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0))}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0))}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) ((long) (reg_$0))}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) (reg_$0)}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{(unsigned long long) (reg_$0)}} +} + +void test_llong(ullong x) { + clang_analyzer_dump(x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ullong)x); // expected-warning{{reg_$0}} + + clang_analyzer_dump((schar)(schar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(char)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(short)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(int)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(long)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(llong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uchar)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ushort)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(uint)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ulong)x); // expected-warning{{(signed char) (reg_$0)}} + clang_analyzer_dump((schar)(ullong)x); // expected-warning{{(signed char) (reg_$0)}} + + clang_analyzer_dump((char)(schar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(char)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(short)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(int)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(long)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(llong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uchar)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ushort)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(uint)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ulong)x); // expected-warning{{(char) (reg_$0)}} + clang_analyzer_dump((char)(ullong)x); // expected-warning{{(char) (reg_$0)}} + + clang_analyzer_dump((short)(schar)x); // expected-warning{{(short) ((signed char) (reg_$0))}} + clang_analyzer_dump((short)(char)x); // expected-warning{{(short) ((char) (reg_$0))}} + clang_analyzer_dump((short)(short)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(int)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(long)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(llong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uchar)x); // expected-warning{{(short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((short)(ushort)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(uint)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ulong)x); // expected-warning{{(short) (reg_$0)}} + clang_analyzer_dump((short)(ullong)x); // expected-warning{{(short) (reg_$0)}} + + clang_analyzer_dump((int)(schar)x); // expected-warning{{(int) ((signed char) (reg_$0))}} + clang_analyzer_dump((int)(char)x); // expected-warning{{(int) ((char) (reg_$0))}} + clang_analyzer_dump((int)(short)x); // expected-warning{{(int) ((short) (reg_$0))}} + clang_analyzer_dump((int)(int)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(long)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(llong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(uchar)x); // expected-warning{{(int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((int)(ushort)x); // expected-warning{{(int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((int)(uint)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ulong)x); // expected-warning{{(int) (reg_$0)}} + clang_analyzer_dump((int)(ullong)x); // expected-warning{{(int) (reg_$0)}} + + clang_analyzer_dump((long)(schar)x); // expected-warning{{(long) ((signed char) (reg_$0))}} + clang_analyzer_dump((long)(char)x); // expected-warning{{(long) ((char) (reg_$0))}} + clang_analyzer_dump((long)(short)x); // expected-warning{{(long) ((short) (reg_$0))}} + clang_analyzer_dump((long)(int)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(long)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(llong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(uchar)x); // expected-warning{{(long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((long)(ushort)x); // expected-warning{{(long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((long)(uint)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ulong)x); // expected-warning{{(long) (reg_$0)}} + clang_analyzer_dump((long)(ullong)x); // expected-warning{{(long) (reg_$0)}} + + clang_analyzer_dump((llong)(schar)x); // expected-warning{{(long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((llong)(char)x); // expected-warning{{(long long) ((char) (reg_$0))}} + clang_analyzer_dump((llong)(short)x); // expected-warning{{(long long) ((short) (reg_$0))}} + clang_analyzer_dump((llong)(int)x); // expected-warning{{(long long) ((int) (reg_$0))}} + clang_analyzer_dump((llong)(long)x); // expected-warning{{(long long) ((long) (reg_$0))}} + clang_analyzer_dump((llong)(llong)x); // expected-warning{{(long long) (reg_$0)}} + clang_analyzer_dump((llong)(uchar)x); // expected-warning{{(long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((llong)(ushort)x); // expected-warning{{(long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((llong)(uint)x); // expected-warning{{(long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((llong)(ulong)x); // expected-warning{{(long long) ((unsigned long) (reg_$0))}} + clang_analyzer_dump((llong)(ullong)x); // expected-warning{{(long long) (reg_$0)}} + + clang_analyzer_dump((uchar)(schar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(char)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(short)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(int)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(long)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(llong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uchar)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ushort)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(uint)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ulong)x); // expected-warning{{(unsigned char) (reg_$0)}} + clang_analyzer_dump((uchar)(ullong)x); // expected-warning{{(unsigned char) (reg_$0)}} + + clang_analyzer_dump((ushort)(schar)x); // expected-warning{{(unsigned short) ((signed char) (reg_$0))}} + clang_analyzer_dump((ushort)(char)x); // expected-warning{{(unsigned short) ((char) (reg_$0))}} + clang_analyzer_dump((ushort)(short)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(int)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(long)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(llong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uchar)x); // expected-warning{{(unsigned short) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ushort)(ushort)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(uint)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ulong)x); // expected-warning{{(unsigned short) (reg_$0)}} + clang_analyzer_dump((ushort)(ullong)x); // expected-warning{{(unsigned short) (reg_$0)}} + + clang_analyzer_dump((uint)(schar)x); // expected-warning{{(unsigned int) ((signed char) (reg_$0))}} + clang_analyzer_dump((uint)(char)x); // expected-warning{{(unsigned int) ((char) (reg_$0))}} + clang_analyzer_dump((uint)(short)x); // expected-warning{{(unsigned int) ((short) (reg_$0))}} + clang_analyzer_dump((uint)(int)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(long)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(llong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(uchar)x); // expected-warning{{(unsigned int) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((uint)(ushort)x); // expected-warning{{(unsigned int) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((uint)(uint)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ulong)x); // expected-warning{{(unsigned int) (reg_$0)}} + clang_analyzer_dump((uint)(ullong)x); // expected-warning{{(unsigned int) (reg_$0)}} + + clang_analyzer_dump((ulong)(schar)x); // expected-warning{{(unsigned long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ulong)(char)x); // expected-warning{{(unsigned long) ((char) (reg_$0))}} + clang_analyzer_dump((ulong)(short)x); // expected-warning{{(unsigned long) ((short) (reg_$0))}} + clang_analyzer_dump((ulong)(int)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(long)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(llong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(uchar)x); // expected-warning{{(unsigned long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ulong)(ushort)x); // expected-warning{{(unsigned long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ulong)(uint)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ulong)x); // expected-warning{{(unsigned long) (reg_$0)}} + clang_analyzer_dump((ulong)(ullong)x); // expected-warning{{(unsigned long) (reg_$0)}} + + clang_analyzer_dump((ullong)(schar)x); // expected-warning{{(unsigned long long) ((signed char) (reg_$0))}} + clang_analyzer_dump((ullong)(char)x); // expected-warning{{(unsigned long long) ((char) (reg_$0))}} + clang_analyzer_dump((ullong)(short)x); // expected-warning{{(unsigned long long) ((short) (reg_$0))}} + clang_analyzer_dump((ullong)(int)x); // expected-warning{{(unsigned long long) ((int) (reg_$0))}} + clang_analyzer_dump((ullong)(long)x); // expected-warning{{(unsigned long long) ((long) (reg_$0))}} + clang_analyzer_dump((ullong)(llong)x); // expected-warning{{reg_$0}} + clang_analyzer_dump((ullong)(uchar)x); // expected-warning{{(unsigned long long) ((unsigned char) (reg_$0))}} + clang_analyzer_dump((ullong)(ushort)x); // expected-warning{{(unsigned long long) ((unsigned short) (reg_$0))}} + clang_analyzer_dump((ullong)(uint)x); // expected-warning{{(unsigned long long) ((unsigned int) (reg_$0))}} + clang_analyzer_dump((ullong)(ulong)x); // expected-warning{{(unsigned long long) ((unsigned long) (reg_$0))}} + clang_analyzer_dump((ullong)(ullong)x); // expected-warning{{reg_$0}} +}