Eliminate instances of `EmitScalarExpr(E->getArg(n))` in EmitX86BuiltinExpr().
authorNico Weber <nicolasweber@gmx.de>
Tue, 21 Aug 2018 22:19:55 +0000 (22:19 +0000)
committerNico Weber <nicolasweber@gmx.de>
Tue, 21 Aug 2018 22:19:55 +0000 (22:19 +0000)
commit14a577bfd1df04c7f53bd64d143a801582efda61
treefbe9526b8ef257ee2a71aca05df1aa27c7a495f2
parent22d1a2789a752dce0244666a248e353d797b70ee
Eliminate instances of `EmitScalarExpr(E->getArg(n))` in EmitX86BuiltinExpr().

EmitX86BuiltinExpr() emits all args into Ops at the beginning, so don't do that
work again.

This changes behavior: If e.g. ++a was passed as an arg, we incremented a twice
previously. This change fixes that bug.

https://reviews.llvm.org/D50979

llvm-svn: 340348
clang/lib/CodeGen/CGBuiltin.cpp
clang/test/CodeGen/ms-intrinsics.c
clang/test/CodeGen/ms-x86-intrinsics.c