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.