[cfe-commits] r162766 - in /cfe/trunk: lib/CodeGen/CGExprScalar.cpp test/CodeGen/pr13704.c
Chandler Carruth
chandlerc at google.com
Tue Aug 28 10:03:50 PDT 2012
On Tue, Aug 28, 2012 at 9:55 AM, Michael Liao <michael.liao at intel.com>wrote:
> Author: hliao
> Date: Tue Aug 28 11:55:13 2012
> New Revision: 162766
>
> URL: http://llvm.org/viewvc/llvm-project?rev=162766&view=rev
> Log:
> Fix PR13704
>
> - The increment needs to be signed value to preserve the original value
> when
> its data type is larger than 64-bit integer.
>
Thanks for the fix! One small comment:
> Added:
> cfe/trunk/test/CodeGen/pr13704.c
> Modified:
> cfe/trunk/lib/CodeGen/CGExprScalar.cpp
>
> Modified: cfe/trunk/lib/CodeGen/CGExprScalar.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprScalar.cpp?rev=162766&r1=162765&r2=162766&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGExprScalar.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGExprScalar.cpp Tue Aug 28 11:55:13 2012
> @@ -1306,7 +1306,7 @@
> // Most common case by far: integer increment.
> } else if (type->isIntegerType()) {
>
> - llvm::Value *amt = llvm::ConstantInt::get(value->getType(), amount);
> + llvm::Value *amt = llvm::ConstantInt::get(value->getType(), amount,
> true);
>
> // Note that signed integer inc/dec with width less than int can't
> // overflow because of promotion rules; we're just eliding a few
> steps here.
>
> Added: cfe/trunk/test/CodeGen/pr13704.c
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/pr13704.c?rev=162766&view=auto
>
> ==============================================================================
> --- cfe/trunk/test/CodeGen/pr13704.c (added)
> +++ cfe/trunk/test/CodeGen/pr13704.c Tue Aug 28 11:55:13 2012
> @@ -0,0 +1,9 @@
> +// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
> +extern void foo(__int128);
> +
> +void bar() {
> + __int128 x = 2;
> + x--;
> + foo(x);
> +// CHECK: add nsw i128 %0, -1
> +}
This test is really small. Can you add this test case to one of the
existing codegen tests, with a comment (or namespace, or function name) to
indicate that it is derived from PR13704?
The reason we tend to pull many different tests together into a single file
is that running the test suite is largely limited on the number of files.
Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120828/0c7afef6/attachment.html>
More information about the cfe-commits
mailing list