Jump to content

  • Log In with Google      Sign In   
  • Create Account

#ActualTheAtom

Posted 04 April 2013 - 05:57 PM

Indeed they are. I just realized that it is our preprocessor that converts the character literals into integers, as a normal step of preprocessing. We don't even have asEP_USE_CHARACTER_LITERALS enabled. Another false alarm!


#1TheAtom

Posted 04 April 2013 - 04:56 PM

This test was on rev 1605. The expression:

uint8 c = 'Đ';

The character code for Đ is 0xD0.

 

The warnings:

WARNING : Implicit conversion changed sign of value.

WARNING : Value is too large for data type.

The second warning also happens with uint16 in place of uint8. Any signed type (including int8) does not generate warnings.

 

The engine properties are as follows:

engine->SetEngineProperty( asEP_ALLOW_UNSAFE_REFERENCES, true );

engine->SetEngineProperty( asEP_OPTIMIZE_BYTECODE, true );

engine->SetEngineProperty( asEP_SCRIPT_SCANNER, 0 );

engine->SetEngineProperty( asEP_AUTO_GARBAGE_COLLECT, false );

engine->SetEngineProperty( asEP_ALWAYS_IMPL_DEFAULT_CONSTRUCT, true );

 

The registered string that we use is not scriptstdstring, but a modernized version of scriptstring (if that's of any consequence, since this snippet does not use strings).


PARTNERS