2dda50dd50
Rather than have the inliner own this responsibility, the function finalizer now detects if a function is supposed to return a value but never actually does. This will allow us to detect this error case even if the inliner is disabled. The inliner should no longer encounter functions that claim to return a value but don't, so it will now assert if one is encountered. (The inliner still has the logic to handle this case gracefully, just in case.) The check is currently very simple and doesn't analyze the structure of the function, so it won't report cases where some paths return a value and others don't, e.g. this will pass the test: int func() { if (something()) return 123; } (This is good enough to resolve the inliner issue, though, as it only occurred in functions with no value-returns at all.) Change-Id: I21f13daffe66c8f2e72932b320ee268ba9207bfa Bug: oss-fuzz:31469, oss-fuzz:31525, skia:11377 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/377196 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: John Stiles <johnstiles@google.com> |
||
---|---|---|
.. | ||
blend | ||
errors | ||
folding | ||
fp | ||
glsl | ||
inliner | ||
intrinsics | ||
metal | ||
runtime | ||
runtime_errors | ||
shared | ||
spirv | ||
workarounds | ||
README.txt |
This directory contains source files for testing skslc compilation. The compiled output files are in the /tests/sksl/ directory.