With ESSL 3.00, names of built-in functions cannot be redeclared as functions and therefore overloading or redefining builtin functions is an error. This is fixed by inserting unmangled built-ins into the symbol table and then checking if the new function declaration matches any of the built-in in symbol table. BUG=angleproject:1066 TEST=angle_unittests(new: ParseESSLFunctionsTest), dEQP Tests dEQP-GLES3.functional.shaders.functions.invalid.overload_builtin_function* (2 tests started passing with this change) Change-Id: I0e027e588664e604f29c130028178315c3e21631 Reviewed-on: https://chromium-review.googlesource.com/287801Reviewed-by:Zhenyao Mo <zmo@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Tested-by:
Jamie Madill <jmadill@chromium.org>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| API_test.cpp | Loading commit data... | |
| BuiltInFunctionEmulator_test.cpp | Loading commit data... | |
| CollectVariables_test.cpp | Loading commit data... | |
| ConstantFolding_test.cpp | Loading commit data... | |
| DebugShaderPrecision_test.cpp | Loading commit data... | |
| ExpressionLimit_test.cpp | Loading commit data... | |
| MalformedShader_test.cpp | Loading commit data... | |
| NV_draw_buffers_test.cpp | Loading commit data... | |
| Pack_Unpack_test.cpp | Loading commit data... | |
| ParseESSLFunctions_test.cpp | Loading commit data... | |
| PruneUnusedFunctions_test.cpp | Loading commit data... | |
| RecordConstantPrecision_test.cpp | Loading commit data... | |
| RemovePow_test.cpp | Loading commit data... | |
| ShaderExtension_test.cpp | Loading commit data... | |
| ShaderVariable_test.cpp | Loading commit data... | |
| TypeTracking_test.cpp | Loading commit data... | |
| UnrollFlatten_test.cpp | Loading commit data... | |
| VariablePacker_test.cpp | Loading commit data... |