stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Farid Zaripov" <Farid_Zari...@epam.com>
Subject RE: svn commit: r577002 - /incubator/stdcxx/trunk/tests/utilities/20.temp.buffer.cpp
Date Tue, 18 Sep 2007 19:18:43 GMT
> -----Original Message-----
> From: Martin Sebor [mailto:sebor@roguewave.com] 
> Sent: Tuesday, September 18, 2007 9:53 PM
> To: stdcxx-dev@incubator.apache.org
> Subject: Re: svn commit: r577002 - 
> /incubator/stdcxx/trunk/tests/utilities/20.temp.buffer.cpp
> 
> > 	* 20.temp.buffer.cpp (run_test): Use _RWSTD_LONG_MAX instead
> > 	of _RWSTD_PTRDIFF_MAX because BigStruct parametrized by
> > 	unsigned long type and sizeof (_RWSTD_PTRDIFF_T) can be
> > 	greater that sizeof (unsigned long).
> 
> Shouldn't that be the other way around? I mean, wouldn't a 
> more robust solution be to parametrize BigStruct on ptrdiff_t 
> so that it can be instantiated with the largest possible value even on
> LLP64 like Windows?

  Are there any LLP64 platforms except Windows?

  Because on Windows the maximum size of the array is 0x7fffffff bytes.

The following line of code:

char buf [0x80000000];

inducts the error on MSVC (32 bit and 64 bit):

error C2148: total size of array must not exceed 0x7fffffff bytes

on ICC 9.1 (32 bit and 64 bit), 10.0 (32 bit and 64 bit):

error: array is too large
  char buf [0x80000000];
       ^

Farid.

Mime
View raw message