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

Reply via email to