Index: clang/lib/Format/TokenAnnotator.cpp =================================================================== --- clang/lib/Format/TokenAnnotator.cpp +++ clang/lib/Format/TokenAnnotator.cpp @@ -2940,6 +2940,10 @@ return true; } + // auto{x} + if (Left.is(tok::kw_auto) && Right.is(tok::l_brace)) + return false; + // requires clause Concept1 && Concept2 if (Left.is(TT_ConstraintJunctions) && Right.is(tok::identifier)) return true; Index: clang/unittests/Format/FormatTest.cpp =================================================================== --- clang/unittests/Format/FormatTest.cpp +++ clang/unittests/Format/FormatTest.cpp @@ -22566,6 +22566,13 @@ EXPECT_EQ(Code, format(Code, Style)); } +TEST_F(FormatTest, FormatDecayCopy) { + verifyFormat("foo(auto())"); + verifyFormat("foo(auto{})"); + verifyFormat("foo(auto({}))"); + verifyFormat("foo(auto{{}})"); +} + } // namespace } // namespace format } // namespace clang