[llvm-bugs] [Bug 40496] New: a pass error, this pass never consider data overflow
via llvm-bugs
llvm-bugs at lists.llvm.org
Mon Jan 28 07:45:44 PST 2019
https://bugs.llvm.org/show_bug.cgi?id=40496
Bug ID: 40496
Summary: a pass error, this pass never consider data overflow
Product: clang
Version: 7.0
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: -New Bugs
Assignee: unassignedclangbugs at nondot.org
Reporter: witstorm at 163.com
CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org,
neeilans at live.com, richard-llvm at metafoo.co.uk
Created attachment 21395
--> https://bugs.llvm.org/attachment.cgi?id=21395&action=edit
source code for error proof
Here have a simple program in the attachment.
Example:
#include<stdio.h>
typedef unsigned char X;
//typedef char X;
X Fb(X x, X y){return x + y;}
int main()
{
auto int ai0,ai1;
ai0 = 0;
ai1 = 2147483647;
ai0 = ai1 + Fb(63, 64);
printf("%d\n",ai0 == -2147483522);
}
If we use clang to generate .ll file by -O3, we will get wrong .ll file.
The compile command like that: clang a.c -O3 -emit-llvm -S -o aa.ll
we find the pass where did this optimize. There problem is the pass never
consider data overflow for icmp constant fold. And I find the same bug in other
passes, if you need it, just contact me by email(witstorm at 163.com).
Run the code, it should print 1.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190128/365c97c7/attachment.html>
More information about the llvm-bugs
mailing list