From e37208ce86916af9510ffb9ce7b3c187986f07de Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Sat, 22 Oct 2016 17:33:26 +0200 Subject: [PATCH] math.h: Wrap C++ bits in extern "C++" It is still common to include system header files in an extern "C" block. This means that exiting 's own extern "C" block is not sufficient to get back to C++ mode. Use an extern "C++" wrapper instead. --- ChangeLog | 6 ++++++ math/math.h | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index e41c3e7330..2520c44371 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2016-10-22 Florian Weimer + + * math/math.h [__cplusplus] (iszero): Wrap C++ bits in extern + "C++", to override a potential extern "C" directive around the + header file inclusion. + 2016-10-21 Joseph Myers * benchtests/Makefile (CFLAGS-bench-sqrt.c): New variable. diff --git a/math/math.h b/math/math.h index 0220d08d8a..7c0c709523 100644 --- a/math/math.h +++ b/math/math.h @@ -342,7 +342,7 @@ enum # define iszero(x) (((__typeof (x)) (x)) == 0) # endif # else /* __cplusplus */ -__END_DECLS +extern "C++" { template inline bool iszero (__T __val) { @@ -352,7 +352,7 @@ iszero (__T __val) return __val == 0; # endif } -__BEGIN_DECLS +} /* extern C++ */ # endif /* __cplusplus */ #endif /* Use IEC_60559_BFP_EXT. */