Resubmit with clang build issue fixed. The result of a short-circuited
operation is now either 0 or 1.
ESSL 3.00 spec section 3.4 mentions that the second operand in a logical
&& or || preprocessor operation is evaluated only if the first operand
doesn't short-circuit the expression. The non-evaluated part of a
preprocessor expression may also have undefined identifiers.
Make the expression parser follow the spec by ignoring errors that are
generated inside short-circuited expressions. This includes undefined
identifiers and divide by zero.
BUG=angleproject:347
TEST=dEQP-GLES3.functional.shaders.preprocessor.undefined_identifiers.*
angle_unittests
Change-Id: I4163f96ec46d40ac859ffb39d91b89490041e44d
Reviewed-on: https://chromium-review.googlesource.com/297252Tested-by:
Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by:
Jamie Madill <jmadill@chromium.org>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| compiler_tests | Loading commit data... | |
| deqp_support | Loading commit data... | |
| deqp_tests | Loading commit data... | |
| egl_tests | Loading commit data... | |
| gl_tests | Loading commit data... | |
| gles_conformance_tests | Loading commit data... | |
| perf_tests | Loading commit data... | |
| preprocessor_tests | Loading commit data... | |
| test_utils | Loading commit data... | |
| third_party | Loading commit data... | |
| BUILD.gn | Loading commit data... | |
| WebGL-CTS-known-failures.txt | Loading commit data... | |
| angle_end2end_tests.gypi | Loading commit data... | |
| angle_end2end_tests_main.cpp | Loading commit data... | |
| angle_perftests.gypi | Loading commit data... | |
| angle_perftests_main.cpp | Loading commit data... | |
| angle_unittests.gypi | Loading commit data... | |
| angle_unittests_main.cpp | Loading commit data... | |
| angle_unittests_utils.h | Loading commit data... | |
| deqp.gypi | Loading commit data... | |
| tests.gyp | Loading commit data... |