[LLVMbugs] [Bug 18176] New: cmath: compile failure with custom fabs in std namespace

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sat Dec 7 23:13:27 PST 2013


            Bug ID: 18176
           Summary: cmath: compile failure with custom fabs in std
           Product: libc++
           Version: unspecified
          Hardware: PC
                OS: FreeBSD
            Status: NEW
          Severity: normal
          Priority: P
         Component: All Bugs
          Assignee: hhinnant at apple.com
          Reporter: amdmi3 at amdmi3.ru
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 11687
  --> http://llvm.org/bugs/attachment.cgi?id=11687&action=edit

When fabs() overload for custom type is added to std namespace, cmath won't
compile. Example code:

% cat test.cc
struct mytype {

namespace std {
    mytype fabs(const mytype& a) {
        return mytype();

#include <cmath>

int main() {
    mytype a;
    a = std::fabs(a);

    return 0;
% clang++ test.cc
In file included from test.cc:10:
/usr/include/c++/v1/cmath:664:35: error: no matching function for call to
abs(double __x) _NOEXCEPT {return fabs(__x);}
4.cc:5:9: note: candidate function not viable: no known conversion from
'double' to 'const mytype' for 1st argument
        mytype fabs(const mytype& a) {
1 error generated.

Fix is attached. Similar fix may be needed for other functions from global

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20131208/06dddc12/attachment.html>

More information about the llvm-bugs mailing list