this fixes codegen of simple exprs in C++ like 'if (x != 0)'
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62060
91177308-0d34-0410-b5e6-
96231b3b80d8
Result = Builder.CreateOr(ResultR, ResultI, "or.ri");
}
}
-
- // ZExt result to int.
- return Builder.CreateZExt(Result, CGF.LLVMIntTy, "cmp.ext");
+
+ return EmitScalarConversion(Result, CGF.getContext().BoolTy, E->getType());
}
Value *ScalarExprEmitter::VisitBinAssign(const BinaryOperator *E) {
--- /dev/null
+// RUN: clang -emit-llvm -x c++ < %s
+
+void f(int x) {
+ if (x != 0) return;
+}