aboutsummaryrefslogtreecommitdiffstats
path: root/test/regression/builtins-powerpc.c
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2015-09-15 14:26:42 +0200
committerXavier Leroy <xavier.leroy@inria.fr>2015-09-15 14:26:42 +0200
commitde40fce9c16ced8d23389cbcfc55ef6d99466fe8 (patch)
tree569187ad4a38e7a8e15d2d151706867a5955db15 /test/regression/builtins-powerpc.c
parent700e9b41253e04ac3a0a16edfa1f41a2d4084462 (diff)
downloadcompcert-kvx-de40fce9c16ced8d23389cbcfc55ef6d99466fe8.tar.gz
compcert-kvx-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.c5
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;
}