Add error message for link failure.

Previously, if a driver failed to link a shader but didn't set the
INFO_LOG, we would emit a trailing "Errors:" at the end with no
additional information, which looks like the report was truncated early.
Now there will be generic text under Errors to make it obvious that no
errors were reported by the driver.

Change-Id: Ib3e2336ef2387d837639bc424f9949de554c8eae
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/458597
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
diff --git a/src/gpu/gl/builders/GrGLProgramBuilder.cpp b/src/gpu/gl/builders/GrGLProgramBuilder.cpp
index d58e863..f599743 100644
--- a/src/gpu/gl/builders/GrGLProgramBuilder.cpp
+++ b/src/gpu/gl/builders/GrGLProgramBuilder.cpp
@@ -481,14 +481,16 @@
         }
         GrGLint infoLen = GR_GL_INIT_ZERO;
         GL_CALL(GetProgramiv(programID, GR_GL_INFO_LOG_LENGTH, &infoLen));
-        SkAutoMalloc log(sizeof(char)*(infoLen+1));  // outside if for debugger
+        SkAutoMalloc log(infoLen+1);
         if (infoLen > 0) {
             // retrieve length even though we don't need it to workaround
             // bug in chrome cmd buffer param validation.
             GrGLsizei length = GR_GL_INIT_ZERO;
             GL_CALL(GetProgramInfoLog(programID, infoLen+1, &length, (char*)log.get()));
         }
-        errorHandler->compileError(allShaders.c_str(), infoLen > 0 ? (const char*)log.get() : "");
+        const char* errorMsg = (infoLen > 0) ? (const char*)log.get()
+                                             : "link failed but did not provide an info log";
+        errorHandler->compileError(allShaders.c_str(), errorMsg);
     }
     return SkToBool(linked);
 }