SPRUIG6K January 2018 – March 2024
C7000 Host Emulation both introduces and omits some syntax used with the C7000 compiler. While these differences are detailed throughout this document, the Host Emulation compiler cannot be relied on to emit warnings and errors in all of these cases. This is due to the fact that some of the original syntax allowed by the C7000 compiler constitutes legal C++ code, which the Host Emulation compiler would have no reason to warn the user about. While using the original C7000 compiler syntax in some cases may be syntactically correct, the results cannot always be guaranteed. Table 10-2 lists the host compiler errors and warnings, or lack thereof, which may arise when using the original C7000 syntax with C7000 Host Emulation.
Description | Example | Compiler Output |
---|---|---|
Using cl7x cast-style constructor syntax with Host Emulation | vs.
|
No errors or warnings. Results are incorrect/unexpected using cast-style constructor syntax. |
Ternary operator with vector as "boolean expression" | res = vec1 ? vec2 : vec3 |
Compiler error: "Cannot convert vec_type to bool". |
Using swizzle accessor with member data syntax | example.s0121 |
Compiler error: "Member does not exist". |
Using swizzle accessor with function data syntax | example.a0121() |
Compiler error: "Member function does not exist" |
Not using function syntax with accessors | . . . = vect.s0; |
Compile time error. |
Using an invalid value within SE/SA parameters | Setting VECLEN to a negative number | At run-time, Host Emulation will state which field is invalid. |