fixed assertion failure in skslc SPIR-V output Bug: oss-fuzz:13683 Change-Id: Ifceacb35417b1175b3d561c4f0f9794987a09ec3 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209162 Reviewed-by: Kevin Lubick <kjlubick@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
diff --git a/src/sksl/SkSLDefines.h b/src/sksl/SkSLDefines.h index da226f4..21aa7a6 100644 --- a/src/sksl/SkSLDefines.h +++ b/src/sksl/SkSLDefines.h
@@ -18,9 +18,9 @@ #endif // SKSL_STANDALONE #ifdef SKSL_STANDALONE -#define SkASSERT(x) -#define SkAssertResult(x) x -#define SkDEBUGCODE(x) +#define SkASSERT(x) if (!(x)) abort(); +#define SkAssertResult(x) if (!(x)) abort(); +#define SkDEBUGCODE(...) __VA_ARGS__ #else #include "SkTypes.h" #endif
diff --git a/src/sksl/SkSLSPIRVCodeGenerator.cpp b/src/sksl/SkSLSPIRVCodeGenerator.cpp index c688594..c851db9 100644 --- a/src/sksl/SkSLSPIRVCodeGenerator.cpp +++ b/src/sksl/SkSLSPIRVCodeGenerator.cpp
@@ -3201,7 +3201,10 @@ main = entry.first; } } - SkASSERT(main); + if (!main) { + fErrors.error(0, "program does not contain a main() function"); + return; + } for (auto entry : fVariableMap) { const Variable* var = entry.first; if (var->fStorage == Variable::kGlobal_Storage &&