Richard, Can you be more specific?
I assume you mean something like my newly attached .h file that tests very basic implementation compliance (i.e., it's required, but not sufficient), but I would need a bit more guidance about the structure of the file, how to perform the tests, and where to exactly place and name the file within test/Headers. I some sort of template exists, or if someone else takes point and makes it, I can "port" the attached p11 test cases. I am unsure of how to perform a more normative compliance - for example, to assert that LDBL_DECIMAL_DIG is 21 on x86-64 and that indeed those many digits are guaranteed to be correct, etc. This is probably not possible / does not make sense. JT On Tue, Feb 9, 2016 at 3:58 PM, Richard Smith <rich...@metafoo.co.uk> wrote: > Patch looks good. Please also add a testcase to test/Headers. > > On Tue, Feb 9, 2016 at 12:08 PM, Hubert Tong via cfe-commits > <cfe-commits@lists.llvm.org> wrote: >> I see no immediate issue with this patch, but I am not one of the usual >> reviewers for this part of the code base. >> >> -- HT >> >> >> On Tue, Feb 9, 2016 at 2:56 PM, Jorge Teixeira <j.lopes.teixe...@gmail.com> >> wrote: >>> >>> Thanks Hubert. Somehow I omitted that prefix when typing the macros, >>> and I did not noticed it when I was testing because on my arch >>> DECIMAL_DIG is defined to be the LDBL version... >>> >>> Updated patch is attached. >>> >>> JT >>> >>> On Tue, Feb 9, 2016 at 1:41 PM, Hubert Tong >>> <hubert.reinterpretc...@gmail.com> wrote: >>> > There is a __LDBL_DECIMAL_DIG__ predefined macro. __DECIMAL_DIG__ will >>> > not >>> > always be the same as __LDBL_DECIMAL_DIG__. >>> > >>> > -- HT >>> > >>> > On Mon, Feb 8, 2016 at 11:26 PM, Jorge Teixeira via cfe-commits >>> > <cfe-commits@lists.llvm.org> wrote: >>> >> >>> >> Hi, I filed the bug (https://llvm.org/bugs/show_bug.cgi?id=26283) some >>> >> time ago and nobody picked it up, so here is a trivial patch exposing >>> >> the missing macros, that to the best of my ability were already >>> >> present as the internal underscored versions. >>> >> >>> >> Perhaps a more general bug about C11 floating point (lack of) >>> >> conformance should be filed, so that some form of unit test/macro >>> >> validation could be worked on, but this patch does scratch my current >>> >> itch. >>> >> >>> >> Successfully tested on x86-64 Xubuntu 14.04 with clang 3.8 from the >>> >> ppa, patched with the attached diff. >>> >> >>> >> First contribution, so feel free to suggest improvements or point to >>> >> more detailed step-by-step instructions/guidelines. >>> >> >>> >> Cheers, >>> >> >>> >> JT >>> >> >>> >> _______________________________________________ >>> >> cfe-commits mailing list >>> >> cfe-commits@lists.llvm.org >>> >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >>> >> >>> > >> >> >> >> _______________________________________________ >> cfe-commits mailing list >> cfe-commits@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >>
/* From N1570 draft of C11 Std. */ /* 5.2.4.2.2p11, pp. 30 */ #include <float.h> #if __STDC_VERSION__ >= 201112L || !defined(__STRICT_ANSI__) #ifndef FLT_RADIX #error "Macro FLT_RADIX missing" #elif FLT_RADIX < 2 # error "Macro FLT_RADIX invalid" #endif #ifndef FLT_MANT_DIG #error "Macro FLT_MANT_DIG missing" #elif FLT_MANT_DIG < 1 # error "Macro FLT_MANT_DIG invalid" #endif #ifndef DBL_MANT_DIG #error "Macro DBL_MANT_DIG missing" #elif DBL_MANT_DIG < 1 # error "Macro DBL_MANT_DIG invalid" #endif #ifndef LDBL_MANT_DIG #error "Macro LDBL_MANT_DIG missing" #elif LDBL_MANT_DIG < 1 # error "Macro LDBL_MANT_DIG invalid" #endif #if (FLT_MANT_DIG > DBL_MANT_DIG) || (DBL_MANT_DIG > LDBL_MANT_DIG) #error "Macro(s) FLT_MANT_DIG, DBL_MANT_DIG, LDBL_MANT_DIG invalid" #endif #ifndef FLT_DECIMAL_DIG #error "Macro FLT_DECIMAL_DIG missing" #elif FLT_DECIMAL_DIG < 6 # error "Macro FLT_DECIMAL_DIG invalid" #endif #ifndef DBL_DECIMAL_DIG #error "Macro DBL_DECIMAL_DIG missing" #elif DBL_DECIMAL_DIG < 10 # error "Macro DBL_DECIMAL_DIG invalid" #endif #ifndef LDBL_DECIMAL_DIG #error "Macro LDBL_DECIMAL_DIG missing" #elif LDBL_DECIMAL_DIG < 10 # error "Macro LDBL_DECIMAL_DIG invalid" #endif #if (FLT_DECIMAL_DIG > DBL_DECIMAL_DIG) || (DBL_DECIMAL_DIG > LDBL_DECIMAL_DIG) #error "Macro(s) FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG invalid" #endif #ifndef DECIMAL_DIG #error "Macro DECIMAL_DIG missing" #elif DECIMAL_DIG < 10 # error "Macro DECIMAL_DIG invalid" #endif #ifndef FLT_DIG #error "Macro FLT_DIG missing" #elif FLT_DIG < 6 # error "Macro FLT_DIG invalid" #endif #ifndef DBL_DIG #error "Macro DBL_DIG missing" #elif DBL_DIG < 10 # error "Macro DBL_DIG invalid" #endif #ifndef LDBL_DIG #error "Macro LDBL_DIG missing" #elif LDBL_DIG < 10 # error "Macro LDBL_DIG invalid" #endif #if (FLT_DIG > DBL_DIG) || (DBL_DIG > LDBL_DIG) #error "Macro(s) FLT_DIG, DBL_DIG, LDBL_DIG invalid" #endif #ifndef FLT_MIN_EXP #error "Macro _MIN_EXP missing" #elif FLT_MIN_EXP > -2 # error "Macro _MIN_EXP invalid" #endif #ifndef DBL_MIN_EXP #error "Macro DBL_MIN_EXP missing" #elif DBL_MIN_EXP > -2 # error "Macro DBL_MIN_EXP invalid" #endif #ifndef LDBL_MIN_EXP #error "Macro LDBL_MIN_EXP missing" #elif LDBL_MIN_EXP > -2 # error "Macro LDBL_MIN_EXP invalid" #endif #if (FLT_MIN_EXP < DBL_MIN_EXP) || (DBL_MIN_EXP < LDBL_MIN_EXP) #error "Macro(s) FLT_MIN_EXP, DBL_MIN_EXP, LDBL_MIN_EXP invalid" #endif #ifndef FLT_MIN_10_EXP #error "Macro FLT_MIN_10_EXP missing" #elif FLT_MIN_10_EXP > -37 # error "Macro FLT_MIN_10_EXP invalid" #endif #ifndef DBL_MIN_10_EXP #error "Macro DBL_MIN_10_EXP missing" #elif DBL_MIN_10_EXP > -37 # error "Macro DBL_MIN_10_EXP invalid" #endif #ifndef LDBL_MIN_10_EXP #error "Macro LDBL_MIN_10_EXP missing" #elif LDBL_MIN_10_EXP > -37 # error "Macro LDBL_MIN_10_EXP invalid" #endif #if (FLT_MIN_10_EXP < DBL_MIN_10_EXP) || (DBL_MIN_10_EXP < LDBL_MIN_10_EXP) #error "Macro(s) FLT_MIN_10_EXP, DBL_MIN_10_EXP, LDBL_MIN_10_EXP invalid" #endif #ifndef FLT_MAX_EXP #error "Macro FLT_MAX_EXP missing" #elif FLT_MAX_EXP < 2 # error "Macro FLT_MAX_EXP invalid" #endif #ifndef DBL_MAX_EXP #error "Macro DBL_MAX_EXP missing" #elif DBL_MAX_EXP < 2 # error "Macro DBL_MAX_EXP invalid" #endif #ifndef LDBL_MAX_EXP #error "Macro LDBL_MAX_EXP missing" #elif LDBL_MAX_EXP < 2 # error "Macro LDBL_MAX_EXP invalid" #endif #if (FLT_MAX_EXP > DBL_MAX_EXP) || (DBL_MAX_EXP > LDBL_MAX_EXP) #error "Macro(s) FLT_MAX_EXP, DBL_MAX_EXP, LDBL_MAX_EXP invalid" #endif #ifndef FLT_MAX_10_EXP #error "Macro FLT_MAX_10_EXP missing" #elif FLT_MAX_10_EXP < 37 # error "Macro FLT_MAX_10_EXP invalid" #endif #ifndef DBL_MAX_10_EXP #error "Macro DBL_MAX_10_EXP missing" #elif DBL_MAX_10_EXP < 37 # error "Macro DBL_MAX_10_EXP invalid" #endif #ifndef LDBL_MAX_10_EXP #error "Macro LDBL_MAX_10_EXP missing" #elif LDBL_MAX_10_EXP < 37 # error "Macro LDBL_MAX_10_EXP invalid" #endif #if (FLT_MAX_10_EXP > DBL_MAX_10_EXP) || (DBL_MAX_10_EXP > LDBL_MAX_10_EXP) #error "Macro(s) FLT_MAX_10_EXP, DBL_MAX_10_EXP, LDBL_MAX_10_EXP invalid" #endif #endif // __STDC_VERSION__ >= 201112L || !defined(__STRICT_ANSI__)
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits