Skip to content

[clang-format] Macro formatting regression 19.1.6 vs 19.1.7 #123179

@chegoryu

Description

@chegoryu

For the following code:

template<typename Writer>
void write_to(Writer& writer, const FieldHeader& field_header) {
#define WRITE_MESSAGE(type) \
  { \
    case FieldType::type: { \
      writer.value(#type); \
      writer.key("Message").start_object(); \
      write_to(writer, cast_to<type>(field_header)); \
      writer.finish_object(); \
      return; \
    } \
  }
}
Ubuntu clang-format version 19.1.7 (++20250114103238+cd708029e0b2-1~exp1~20250114103342.77)

Produces

template<typename Writer>
void write_to(Writer& writer, const FieldHeader& field_header) {
#define WRITE_MESSAGE(type) \
  {case FieldType::type: {writer.value(#type); \
  writer.key("Message").start_object(); \
  write_to(writer, cast_to<type>(field_header)); \
  writer.finish_object(); \
  return; \
  } \
  }
}

But

Ubuntu clang-format version 19.1.6 (++20241217110052+657e03f8625c-1~exp1~20241217110110.73)

Does not change the file

clang-format-19 file.cpp --dump-config: https://pastebin.com/7vebyX6j

Metadata

Metadata

Assignees

Type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions