21 const char *name_start = log_line;
23 const char *name_end = log_line;
32 const char *error_line_number_end;
35 log_line = error_line_number_end;
40 log_line = error_line_number_end;
44 StringRef source_name(name_start, name_end);
46 if (source_name ==
"msl_wrapper_code") {
53 std::string needle = std::string(
"#line 1 \"") + source_name +
"\"";
57 if (file_start == -1) {
64 StringRef previous_sources(source_combined, file_start);
65 for (
const char c : previous_sources) {
101 return skip_severity(log_line, log_item,
"error",
"warning",
"note");
106 while (!
ELEM(cursor[0],
'\n',
'\0')) {
constexpr int64_t find(char c, int64_t pos=0) const
constexpr bool is_empty() const
int parse_number(const char *log_line, const char **r_new_position) const
const char * skip_separators(const char *log_line, const StringRef separators) const
bool at_number(const char *log_line) const
const char * skip_until(const char *log_line, char stop_char) const
const char * skip_severity(const char *log_line, GPULogItem &log_item, const char *error_msg, const char *warning_msg, const char *note_msg) const
const char * parse_line(const char *source_combined, const char *log_line, GPULogItem &log_item) override
const char * skip_line(const char *cursor) const
const char * skip_name(const char *log_line)
const char * skip_severity_keyword(const char *log_line, GPULogItem &log_item)
StringRef file_name_and_error_line