On 10/07/12 11:08, Sergey Isakov wrote:
> Dear sirs,
> 
> The follow warning
> --------------
> image.c(288) : warning C6297: Arithmetic overflow:  32-bit value is
> shifted, then cast to 64-bit value.  Results might not be an expected value.
> --------------
> It means that if we are using the macro 
> A = EFI_PAGES_TO_SIZE(N);
> then the result will be same size as an argument. For example, if 
> UINT16 N;
> then the result will be restricted to 16 bit - not as expected.

(Small correction: UINT16 ("unsigned short") will be promoted to INT32
("signed int") and then shifted. The result might be unexpected
nonetheless (for example, undefined behavior is possible if the
mathematical result cannot be represented by "signed int".))

Laszlo

------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to