﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
346	Do not include stdint.h in 386/builtin.h	KO Myung-Hun		"Hi/2.

{{{386/builtin.h}}} includes {{{stdint.h}}}. This may not be a problem on C, however this may be a problem on C++. Because, {{{stdint.h}}} does not define some macros such as {{{INT64_C()}}} on C++ by default. It needs some macros such as {{{__STDC_CONSTANT_MACROS}}} are declared.

So if {{{stdint.h}}} is included once without macro declaration on C++, later macros such as {{{INT64_C()}}} are not declares even if {{{stdint.h}}} is included explicitly.

For example,

{{{
#include <vector>
#include <iostream>

#define __STDC_CONSTANT_MACROS
#include <stdint.h>

int main()
{
    std::cout << INT64_C(0) << ""\n"";

    return 0;
}
}}}

This fails.

{{{
vector.cpp: In function `int main()':
vector.cpp:9: error: `INT64_C' undeclared (first use this function)
vector.cpp:9: error: (Each undeclared identifier is reported only once for each 
   function it appears in.)
}}}

However, this succeeds on other platforms such as mingw-482."	defect	closed	normal	libc-0.7	libc	0.6.6	normal	invalid		
