So the regress failure is a clang bug. Already fixed upstream: https://reviews.llvm.org/D29778
ok? Index: gnu/llvm/tools/clang/include/clang/Basic/Builtins.def =================================================================== RCS file: /cvs/src/gnu/llvm/tools/clang/include/clang/Basic/Builtins.def,v retrieving revision 1.1.1.4 diff -u -p -r1.1.1.4 Builtins.def --- gnu/llvm/tools/clang/include/clang/Basic/Builtins.def 14 Mar 2017 08:07:54 -0000 1.1.1.4 +++ gnu/llvm/tools/clang/include/clang/Basic/Builtins.def 4 Aug 2017 14:24:47 -0000 @@ -1086,9 +1086,11 @@ LIBBUILTIN(ilogb, "id", "fne", "math.h", LIBBUILTIN(ilogbf, "if", "fne", "math.h", ALL_LANGUAGES) LIBBUILTIN(ilogbl, "iLd", "fne", "math.h", ALL_LANGUAGES) -LIBBUILTIN(lgamma, "dd", "fne", "math.h", ALL_LANGUAGES) -LIBBUILTIN(lgammaf, "ff", "fne", "math.h", ALL_LANGUAGES) -LIBBUILTIN(lgammal, "LdLd", "fne", "math.h", ALL_LANGUAGES) +// POSIX math.h declares a global, signgam, that lgamma writes to, so these +// shouldn't have "e" or "c" attributes +LIBBUILTIN(lgamma, "dd", "fn", "math.h", ALL_LANGUAGES) +LIBBUILTIN(lgammaf, "ff", "fn", "math.h", ALL_LANGUAGES) +LIBBUILTIN(lgammal, "LdLd", "fn", "math.h", ALL_LANGUAGES) LIBBUILTIN(llrint, "LLid", "fne", "math.h", ALL_LANGUAGES) LIBBUILTIN(llrintf, "LLif", "fne", "math.h", ALL_LANGUAGES)