stdcxx-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <>
Subject [jira] Resolved: (STDCXX-873) [EDG eccp 3.9/SuSE 9] wcslen() not declared in <wchar.h>
Date Tue, 15 Apr 2008 17:11:05 GMT


Martin Sebor resolved STDCXX-873.

    Resolution: Fixed

Turns out the problem is caused by the GNU libc headers which make use of the {{long long}}
type. Since we compile with the EDG eccp -A option for strict C++ 98 conformance the compiler
errors out on the {{long long}} type in all config tests that #include such headers. The fix
committed in [rev648332|] suppresses the
error during the configuration process.

Here's the command line and the compiler output for the config test for {{wcslen()}}:

eccp -c -DCHECK_DECL -A -x --template_directory=/build/sebor/stdcxx-eccp-3.9-11s
/lib -g   --display_error_number --remarks --diag_suppress 193,236,340,401,261,4
79,487,678,679,815  -DHDRNAME="<wchar.h>" -DFUNNAME=wcslen  -DFUN=wcslen -DTAKE_
ADDR=1  /tmp/libc_decl_tmpsrc-27270.cpp -o /tmp/wcslen-27270.o
"/usr/include/wchar.h", line 508: error #450-D: the type "long long" is
  extern long long int __wcstoll_internal (__const wchar_t *__restrict __nptr,

"/usr/include/wchar.h", line 515: error #450-D: the type "long long" is
  extern unsigned long long int __wcstoull_internal (__const wchar_t *

2 errors detected in the compilation of "/tmp/libc_decl_tmpsrc-27270.cpp".

> [EDG eccp 3.9/SuSE 9] wcslen() not declared in <wchar.h>
> --------------------------------------------------------
>                 Key: STDCXX-873
>                 URL:
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: 21. Strings
>    Affects Versions: 4.2.0
>         Environment: Edison Design Group C/C++ Front End, version 3.9 (Mar 24 2007 16:01:33)
> SUSE LINUX Enterprise Server 9 (x86_64)
>            Reporter: Martin Sebor
>            Assignee: Martin Sebor
>             Fix For: 4.2.1
>   Original Estimate: 1h
>  Remaining Estimate: 1h
> The C++ '98 function {{wcslen()}} required to be declared in {{<wchar.h>}} and
{{<cwchar>}} is not declared in our version of the former header when compiling with
EDG eccp on SuSE Linux 9. The function is declared in {{<cwchar>}} as expected.
> {noformat}
> $ cat t.cpp && make t
> #include <wchar.h>
> int main ()
> {
>     return wcslen (L"");
> }
> generating dependencies for t.cpp
> eccp -M -I$TOPDIR/include/ansi -D_RWSTDDEBUG    -I$TOPDIR/include -I/build/sebor/stdcxx-eccp-3.9-11s/include
-I$TOPDIR/examples/include  -A -x --template_directory=/build/sebor/stdcxx-eccp-3.9-11s/lib
-g   --display_error_number --remarks --diag_suppress 193,236,340,401,261,479,487,678,679,815
> eccp -c -I$TOPDIR/include/ansi -D_RWSTDDEBUG    -I$TOPDIR/include -I/build/sebor/stdcxx-eccp-3.9-11s/include
-I$TOPDIR/examples/include  -A -x --template_directory=/build/sebor/stdcxx-eccp-3.9-11s/lib
-g   --display_error_number --remarks --diag_suppress 193,236,340,401,261,479,487,678,679,815
> "t.cpp", line 5: error #20: identifier "wcslen" is undefined
>       return wcslen (L"");
>              ^
> 1 error detected in the compilation of "t.cpp".
> make: *** [t.o] Error 2
> {noformat}

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message