You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-libs/icu/files/icu-64.1-guard-memory-inclu...

53 lines
1.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

From 5ecd46bab07561758e0c37a9178e74175e989bdf Mon Sep 17 00:00:00 2001
From: Alon Bar-Lev <alon.barlev@gmail.com>
Date: Sat, 30 Mar 2019 09:59:46 +0300
Subject: [PATCH] ICU-20530 Guard memory include for C++
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Introduce by ICU-20357, commit b7a3571b adding <memory> include without guard.
Fails when compiling within extern "C".
a.cxx
---
extern "C" {
#include <unicode/localpointer.h>
}
---
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/g++-v8/memory:84,
from /tmp/icu/icu4c/source/common/unicode/localpointer.h:45,
from a.cxx:4:
/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/g++-v8/backward/auto_ptr.h:325:3: error: template with C linkage
template<typename _Tp, typename _Dp>
^~~~~~~~
a.cxx:3:1: note: extern "C" linkage started here
extern "C" {
^~~~~~~~~~
---
Found by usage of xmlsec.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
icu4c/source/common/unicode/localpointer.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/icu4c/source/common/unicode/localpointer.h b/icu4c/source/common/unicode/localpointer.h
index e011688b1a5..8e35ded0b10 100644
--- a/common/unicode/localpointer.h
+++ b/common/unicode/localpointer.h
@@ -42,7 +42,11 @@
#if U_SHOW_CPLUSPLUS_API
+#ifdef __cplusplus
+extern "C++" {
#include <memory>
+}
+#endif
U_NAMESPACE_BEGIN