From f226222846780b88bc7bae2bf6213c4da0c8cdea Mon Sep 17 00:00:00 2001 From: Icecream95 Date: Wed, 19 Jan 2022 21:41:23 +1300 Subject: [PATCH] clc: Use stringstream for printing spirv errors The type of the spv_position_t components can differ across platforms, it's simpler to just let C++ overloading handle it. Reviewed-by: Karol Herbst Reviewed-by: Jason Ekstrand Part-of: --- src/compiler/clc/clc_helpers.cpp | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/compiler/clc/clc_helpers.cpp b/src/compiler/clc/clc_helpers.cpp index fb9265e..ddc6a40 100644 --- a/src/compiler/clc/clc_helpers.cpp +++ b/src/compiler/clc/clc_helpers.cpp @@ -1012,22 +1012,20 @@ public: void operator()(spv_message_level_t level, const char *src, const spv_position_t &pos, const char *msg) { - switch(level) { - case SPV_MSG_FATAL: - case SPV_MSG_INTERNAL_ERROR: - case SPV_MSG_ERROR: - clc_error(logger, "(file=%s,line=%ld,column=%ld,index=%ld): %s\n", - src, pos.line, pos.column, pos.index, msg); - break; - - case SPV_MSG_WARNING: - clc_warning(logger, "(file=%s,line=%ld,column=%ld,index=%ld): %s\n", - src, pos.line, pos.column, pos.index, msg); - break; + if (level == SPV_MSG_INFO || level == SPV_MSG_DEBUG) + return; - default: - break; - } + std::ostringstream message; + message << "(file=" << src + << ",line=" << pos.line + << ",column=" << pos.column + << ",index=" << pos.index + << "): " << msg << "\n"; + + if (level == SPV_MSG_WARNING) + clc_warning(logger, "%s", message.str().c_str()); + else + clc_error(logger, "%s", message.str().c_str()); } private: -- 2.7.4