diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2015-09-15 14:26:42 +0200 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2015-09-15 14:26:42 +0200 |
commit | de40fce9c16ced8d23389cbcfc55ef6d99466fe8 (patch) | |
tree | 569187ad4a38e7a8e15d2d151706867a5955db15 /test/regression/builtins-powerpc.c | |
parent | 700e9b41253e04ac3a0a16edfa1f41a2d4084462 (diff) | |
download | compcert-de40fce9c16ced8d23389cbcfc55ef6d99466fe8.tar.gz compcert-de40fce9c16ced8d23389cbcfc55ef6d99466fe8.zip |
Issue with ignoring the result of non-void builtin functions.
In RTL and beyond, the result of a builtin function that has return type different from "void" must be BR, never BR_none. Otherwise, we get compile-time fatal errors, either in Asmexpand or in Lineartyping.
Diffstat (limited to 'test/regression/builtins-powerpc.c')
-rw-r--r-- | test/regression/builtins-powerpc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/test/regression/builtins-powerpc.c b/test/regression/builtins-powerpc.c index acffa435..90030737 100644 --- a/test/regression/builtins-powerpc.c +++ b/test/regression/builtins-powerpc.c @@ -50,7 +50,10 @@ int main(int argc, char ** argv) y = 0; __builtin_write32_reversed(&y, 0x12345678); printf ("CSE write_32_rev: %s\n", y == 0x78563412 ? "ok" : "ERROR"); - + /* Make sure that ignoring the result of a builtin + doesn't cause an internal error */ + (void) __builtin_bswap(x); + (void) __builtin_fsqrt(a); return 0; } |