You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@stdcxx.apache.org by "Martin Sebor (JIRA)" <ji...@apache.org> on 2008/07/18 00:05:32 UTC
[jira] Updated: (STDCXX-325) [EDG eccp] missing float and
long double overloads
[ https://issues.apache.org/jira/browse/STDCXX-325?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Sebor updated STDCXX-325:
--------------------------------
Severity: Compiler Error
Affects Version/s: 4.1.4
4.2.0
4.2.1
Fix Version/s: 4.2.2
Remaining Estimate: 3h
Original Estimate: 3h
Affects all released versions. Scheduled for 4.2.2.
> [EDG eccp] <cmath> missing float and long double overloads
> ----------------------------------------------------------
>
> Key: STDCXX-325
> URL: https://issues.apache.org/jira/browse/STDCXX-325
> Project: C++ Standard Library
> Issue Type: Bug
> Components: 26. Numerics
> Affects Versions: 4.1.2, 4.1.3, 4.1.4, 4.2.0, 4.2.1
> Environment: EDG eccp/Solaris
> Reporter: Martin Sebor
> Fix For: 4.2.2
>
> Original Estimate: 3h
> Remaining Estimate: 3h
>
> C++ adds float and long double overloads of all the C math functions in <cmath> (and the C++ version of <math.h>). Our strict implementation of <cmath> is missing all of them:
> $ cat t.cpp && make t && ./t
> #include <cmath>
> extern "C" {
> typedef float cfunf_t (float);
> typedef long double cfunl_t (long double);
> int printf (const char*, ...);
> }
> typedef float cxxfunf_t (float);
> typedef long double cxxfunl_t (long double);
> int testf (...) { return 0; }
> int testf (cfunf_t*) { return 1; }
> int testf (cxxfunf_t*) { return 2; }
> int testl (...) { return 0; }
> int testl (cfunl_t*) { return 1; }
> int testl (cxxfunl_t*) { return 2; }
> extern "C" int printf (const char*, ...);
> int main ()
> {
> #define TESTF(fun) \
> if (!testf (std::fun)) printf ("std::%s(float) not declared\n", #fun);
> TESTF (acos);
> TESTF (asin);
> TESTF (atan);
> TESTF (cos);
> TESTF (sin);
> TESTF (tan);
> TESTF (cosh);
> TESTF (sinh);
> TESTF (tanh);
> TESTF (exp);
> TESTF (log);
> TESTF (log10);
> TESTF (sqrt);
> TESTF (ceil);
> TESTF (fabs);
> TESTF (floor);
> #define TESTL(fun) \
> if (!testl (std::fun)) printf ("std::%s(long double) not declared\n", #fun);
> TESTL (acos);
> TESTL (asin);
> TESTL (atan);
> TESTL (cos);
> TESTL (sin);
> TESTL (tan);
> TESTL (cosh);
> TESTL (sinh);
> TESTL (tanh);
> TESTL (exp);
> TESTL (log);
> TESTL (log10);
> TESTL (sqrt);
> TESTL (ceil);
> TESTL (fabs);
> TESTL (floor);
> }
> 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
> eccp t.o -o t --template_directory=/build/sebor/eccp-3.8-11s/lib -L/build/sebor/eccp-3.8-11s/lib -lstd11s -lm
> std::acos(float) not declared
> std::asin(float) not declared
> std::atan(float) not declared
> std::cos(float) not declared
> std::sin(float) not declared
> std::tan(float) not declared
> std::cosh(float) not declared
> std::sinh(float) not declared
> std::tanh(float) not declared
> std::exp(float) not declared
> std::log(float) not declared
> std::log10(float) not declared
> std::sqrt(float) not declared
> std::ceil(float) not declared
> std::fabs(float) not declared
> std::floor(float) not declared
> std::acos(long double) not declared
> std::asin(long double) not declared
> std::atan(long double) not declared
> std::cos(long double) not declared
> std::sin(long double) not declared
> std::tan(long double) not declared
> std::cosh(long double) not declared
> std::sinh(long double) not declared
> std::tanh(long double) not declared
> std::exp(long double) not declared
> std::log(long double) not declared
> std::log10(long double) not declared
> std::sqrt(long double) not declared
> std::ceil(long double) not declared
> std::fabs(long double) not declared
> std::floor(long double) not declared
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.