aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Stefaniuc <mstefani@redhat.com>2015-03-12 00:19:19 +0100
committerChristopher Li <sparse@chrisli.org>2015-03-13 10:46:11 -0700
commit95940a8d5c7cc6ec8f42479cdcaed189957ba09f (patch)
tree412174774d86ae53d09babe73b4ed8f6ba946c73
parent40791b94c56b1a6da2a0ddeb1f9d5c9d64de8f93 (diff)
downloadsparse-95940a8d5c7cc6ec8f42479cdcaed189957ba09f.tar.gz
Add the __builtin functions needed for INFINITY and nan().
Signed-off-by: Michael Stefaniuc <mstefani@redhat.com> Signed-off-by: Christopher Li <sparse@chrisli.org>
-rw-r--r--lib.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib.c b/lib.c
index 8dc5bcf9..58a7f2ed 100644
--- a/lib.c
+++ b/lib.c
@@ -876,6 +876,17 @@ void declare_builtin_functions(void)
add_pre_buffer("extern int __builtin_islessgreater(float, float);\n");
add_pre_buffer("extern int __builtin_isunordered(float, float);\n");
+ /* And some INFINITY / NAN stuff.. */
+ add_pre_buffer("extern double __builtin_huge_val(void);\n");
+ add_pre_buffer("extern float __builtin_huge_valf(void);\n");
+ add_pre_buffer("extern long double __builtin_huge_vall(void);\n");
+ add_pre_buffer("extern double __builtin_inf(void);\n");
+ add_pre_buffer("extern float __builtin_inff(void);\n");
+ add_pre_buffer("extern long double __builtin_infl(void);\n");
+ add_pre_buffer("extern double __builtin_nan(const char *);\n");
+ add_pre_buffer("extern float __builtin_nanf(const char *);\n");
+ add_pre_buffer("extern long double __builtin_nanl(const char *);\n");
+
/* And some __FORTIFY_SOURCE ones.. */
add_pre_buffer ("extern __SIZE_TYPE__ __builtin_object_size(void *, int);\n");
add_pre_buffer ("extern void * __builtin___memcpy_chk(void *, const void *, __SIZE_TYPE__, __SIZE_TYPE__);\n");