[LLVMbugs] [Bug 65] New: C front-end miscompiles the builtin_expect intrinsic!
bugzilla-daemon at zion.cs.uiuc.edu
bugzilla-daemon at zion.cs.uiuc.edu
Tue Oct 28 23:06:48 PST 2003
http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=65
Summary: C front-end miscompiles the builtin_expect intrinsic!
Product: tools
Version: 1.0
Platform: PC
OS/Version: Linux
Status: NEW
Severity: critical
Priority: P2
Component: llvm-gcc
AssignedTo: sabre at nondot.org
ReportedBy: sabre at nondot.org
The C/C++ frontends are miscompiling the GCC extension __builtin_expect. For
example, this testcase prints FAILURE instead of pass:
#include <stdio.h>
int main() {
int A = 1, B = 0;
if (__builtin_expect(A < B, 1))
printf("FAILURE\n");
else
printf("PASS!\n");
}
Currently it is always expanding the "expected" value, instead of expanding the
expression, thus returning the wrong value if the expectation happens to be wrong.
This is either causing or contributing to PR61.
A significant amount of GNU headers use this (including libstdc++), so this is a
severe problem.
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
More information about the llvm-bugs
mailing list