[Bug 218788] devel/icu: Update to 59.1

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Sep 12 22:13:57 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=218788

Jan Beich <jbeich at FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jbeich at FreeBSD.org

--- Comment #31 from Jan Beich <jbeich at FreeBSD.org> ---
Clang still works fine in C++98 mode because libc++ has surrogates for some
C++11 features (e.g., nullptr).

$ echo 'int main() {}' | clang++ -std=gnu++98 -xc++ - -o /dev/null
-isystem/usr/local/include/ -include unicode/unistr.h

GCC fails to build ICU headers in C++98 mode. Not that anyone should care after
ports r449590 which upgraded default to C++14. However, the backout maybe
wasn't necessary per bug 215770.

$ echo 'int main() {}' | g++7 -std=gnu++98 -xc++ - -o /dev/null
-isystem/usr/local/include/ -include unicode/unistr.h
In file included from /usr/local/include/unicode/unistr.h:33:0,
                 from <command-line>:31:
/usr/local/include/unicode/char16ptr.h:69:37: error: expected ')' before 'p'
     inline Char16Ptr(std::nullptr_t p);
                                     ^
/usr/local/include/unicode/char16ptr.h:117:21: error: expected constructor,
destructor, or type conversion before '(' token
 Char16Ptr::Char16Ptr(std::nullptr_t p) : p(p) {}
                     ^
/usr/local/include/unicode/char16ptr.h:176:38: error: 'nullptr_t' in namespace
'std' does not name a type
     inline ConstChar16Ptr(const std::nullptr_t p);
                                      ^~~~~~~~~
/usr/local/include/unicode/char16ptr.h:225:43: error: 'nullptr_t' in namespace
'std' does not name a type
 ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t p) : p(p) {}
                                           ^~~~~~~~~
/usr/local/include/unicode/char16ptr.h: In constructor
'icu::ConstChar16Ptr::ConstChar16Ptr(int)':
/usr/local/include/unicode/char16ptr.h:225:61: error: invalid conversion from
'int' to 'const char16_t* {aka const short unsigned int*}' [-fpermissive]
 ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t p) : p(p) {}
                                                             ^
In file included from <command-line>:31:0:
/usr/local/include/unicode/unistr.h: At global scope:
/usr/local/include/unicode/unistr.h:3062:63: error: 'nullptr_t' in namespace
'std' does not name a type
   UNISTR_FROM_STRING_EXPLICIT inline UnicodeString(const std::nullptr_t text);
                                                               ^~~~~~~~~
/usr/local/include/unicode/unistr.h:3062:38: error:
'icu::UnicodeString::UnicodeString(int)' cannot be overloaded
   UNISTR_FROM_STRING_EXPLICIT inline UnicodeString(const std::nullptr_t text);
                                      ^~~~~~~~~~~~~
/usr/local/include/unicode/unistr.h:2995:29: error: with
'icu::UnicodeString::UnicodeString(UChar32)'
   UNISTR_FROM_CHAR_EXPLICIT UnicodeString(UChar32 ch);
                             ^~~~~~~~~~~~~
/usr/local/include/unicode/unistr.h:3118:35: error: 'nullptr_t' in namespace
'std' does not name a type
   inline UnicodeString(const std::nullptr_t text, int32_t length);
                                   ^~~~~~~~~
/usr/local/include/unicode/unistr.h:3213:39: error: expected ')' before
'buffer'
   inline UnicodeString(std::nullptr_t buffer, int32_t buffLength, int32_t
buffCapacity);
                                       ^~~~~~
/usr/local/include/unicode/unistr.h:3927:48: error: 'nullptr_t' in namespace
'std' does not name a type
 inline UnicodeString::UnicodeString(const std::nullptr_t /*text*/) {
                                                ^~~~~~~~~
/usr/local/include/unicode/unistr.h:3931:48: error: 'nullptr_t' in namespace
'std' does not name a type
 inline UnicodeString::UnicodeString(const std::nullptr_t /*text*/, int32_t
/*length*/) {
                                                ^~~~~~~~~
/usr/local/include/unicode/unistr.h:3935:42: error: 'int
icu::UnicodeString::UnicodeString' is not a static data member of 'class
icu::UnicodeString'
 inline UnicodeString::UnicodeString(std::nullptr_t /*buffer*/, int32_t
/*buffLength*/, int32_t /*buffCapacity*/) {
                                          ^~~~~~~~~
/usr/local/include/unicode/unistr.h:3935:42: error: 'nullptr_t' is not a member
of 'std'
/usr/local/include/unicode/unistr.h:3935:86: error: expected primary-expression
before ',' token
 inline UnicodeString::UnicodeString(std::nullptr_t /*buffer*/, int32_t
/*buffLength*/, int32_t /*buffCapacity*/) {
                                                                               
      ^
/usr/local/include/unicode/unistr.h:3935:112: error: expected
primary-expression before ')' token
 inline UnicodeString::UnicodeString(std::nullptr_t /*buffer*/, int32_t
/*buffLength*/, int32_t /*buffCapacity*/) {
                                                                               
                                ^
/usr/local/include/unicode/unistr.h:3935:112: error: expression list treated as
compound expression in initializer [-fpermissive]
/usr/local/include/unicode/unistr.h: In member function 'const char16_t*
icu::UnicodeString::getBuffer() const':
/usr/local/include/unicode/unistr.h:3988:12: error: 'nullptr' was not declared
in this scope
     return nullptr;
            ^~~~~~~

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the freebsd-office mailing list