Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Specify handling "defined" operators generated by macro replacement
This is already tested by the dEQP shader preprocessor tests in the conformance suite. Five different corner cases of this behavior were tested against Nexus 5, Nexus 6, Nexus 9 and Nexus Player native GLES3 implementations, as well as the recent implementation in ANGLE TOT. The existing implementations largely agree with the spec in this commit. The only exception is Nexus Player, where in the following kind of case: #define CCC 1 #define defined BBB #define AAA defined #if AAA CCC #endif "defined" in the replacement list of "AAA" is replaced by "BBB" instead of immediately handling it as the "defined" operator. In all the other four implementations, the defined operator is evaluated in this case and returns "1".
- Loading branch information