Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
4.1.2, 4.1.3
-
None
-
EDG eccp/Solaris
Description
The well-formed program below fails to compile with 4.1.2. According to c.math, p8, the C++ header <cstdlib> adds an overload of div(long, long) that returns ldiv_t to the C function div(int, int) that returns div_t. Looks like we're missing that overload.
$ cat t.cpp && make t
#include <cstdlib>
int main ()
{
std::ldiv_t x = std::div (1L, 1L);
}
eccp -c -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG -D_RWSTD_USE_CONFIG -I/build/sebor/dev/stdlib/include -I/build/sebor/eccp-3.8-11s/include -I/build/sebor/dev/stdlib/include/ansi -I/build/sebor/PlumHall/lvs06a/conform -I/build/sebor/PlumHall/lvs06a/dst.3 -A -x --template_directory=/build/sebor/eccp-3.8-11s/lib -g --display_error_number --remarks --diag_suppress 193,236,340,401,261,479,487,678,679,815 --diag_suppress 177,381,191,68,550,611,997,549 t.cpp
"t.cpp", line 5: error #312: no suitable user-defined conversion from
"std::div_t" to "std::ldiv_t" exists
std::ldiv_t x = std::div (1L, 1L);
^
1 error detected in the compilation of "t.cpp".
make: *** [t.o] Error 2