Skip to content

clang-format cannot format attributes on lambdas #92657

Closed
@nico

Description

@nico

Input:

% cat test.cc
void CanonicalCode::write_symbol(LittleEndianOutputBitStream& bit_stream, u32 symbol) const
{
    m_code.visit(
        [&](u32 single_code) __attribute__((always_inline)) -> void {},
        [&](Compress::CanonicalCode const& code) __attribute__((always_inline)) {});
}

clang-format strips the spaces around ->:

% ~/src/llvm-project/out/gn/bin/clang-format test.cc
void CanonicalCode::write_symbol(LittleEndianOutputBitStream& bit_stream, u32 symbol) const
{
    m_code.visit(
        [&](u32 single_code) __attribute__((always_inline))->void {},
        [&](Compress::CanonicalCode const& code) __attribute__((always_inline)) {});
}

This is with today's HEAD (58c7785), but it also repros with older clang-formats.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions