[llvm-dev] Bug in use-list order serialization
Daniel Pfister via llvm-dev
llvm-dev at lists.llvm.org
Mon Feb 26 06:37:02 PST 2018
Hello,
I want to ask if incorrect serialization of a constant's use-list order
is considered as a bug.
While compiling some programs with
clang -c -emit-llvm -O2 -g
I noticed that for many of the bitcode files the verify-uselistorder
tool terminates with output
*** verify-uselistorder ***
verify bitcode
LLVM ERROR: use-list order changed
where the mismatch is always for the constant i64 0. This happens both
with version 5.0.1 and 6.0 RC3 of LLVM and clang. I managed to trigger
this behavior with the following reduced test-case:
#include <stdio.h>
int main (int argc, char **argv) {
struct M { char const *a; char const *b; } const map[] = {
{ "a", "b" },
{ NULL, NULL }
};
char const *foo = "foo";
struct M const *m = map;
while (m->a)
m++;
if (m->b)
foo = m->b;
printf("%s", foo);
return 0;
}
Regards,
Daniel
More information about the llvm-dev
mailing list