You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Martin Sebor (JIRA)" <ji...@apache.org> on 2007/01/19 20:19:30 UTC

[jira] Created: (STDCXX-325) [EDG eccp] missing float and long double overloads

[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
         Environment: EDG eccp/Solaris
            Reporter: Martin Sebor


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.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira