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!
Show differencesHistory of post edits
Posted 04 April 2013 - 04:56 PM
This test was on rev 1605. The expression:
uint8 c = 'Đ';
The character code for Đ is 0xD0.
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).