<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJzFWFtz2jgU_jXmxZMM1zQ88AAEtmxJwgayfWSEfQBtZcmVZAL99Xsk2cYYQ9JuZzbDNJX06dz0nQtZifDQ-wwSvOYn5est-CFdr5VP1hqkn8Qh0ZRv_CEjfHPr1R-8et-7q7uPQbotH_axkNrXEMWMaPBaw4ARpfyF1xye7XqtkZ8eS0K1gbjl34QlsDjEYBGCBxBrf0UULIMtkSRAk6jSNFiKte-1HpzuG_8CZElRLeq0NjhNZtEamXVRldcapJ41B1eFodKhdakA_60_JStzNbm1volMbq-fRuAXo_9aDHNoPOWbhKothMudUbjUxpwl5SbYfnFrLSSKey3Ec1GK4_9hkn2e14rwLU7Dlgav2rYKO1RAGFkxWL5RvbWKvebYfDL-KR16rT5-AhFFglscSuVJtAK5tNflssg-K57w0L16SdobkG_ssMy0pteO8Mqfd2W8_rSMkO5omPudJdK7ckpSKN-BVNSIcfFIbTlNuqoI2ue8GMP88qv_MxalOVsd46OQiiuXgppdqrxyLYrm4oVLHwnbe6lfIPAOAi0wiDEJwPL37JU4bIgmJ9reJV1JRJQwTWNGi75ezoBFVjT8chgucOaCqI9WnWvROHuEn4_GmYizaHyQzS4uflVgjvz4xfi48F4PzgpLaUCU816LpcJQkQ0YFzFSxVO8nx6m7eBSK_hdCm0EK1VeLPTZpJIvbwMzyNzg7Yhoc9Dql6AHEjG31Q8CUOpR4JhDQT7jVAQY1r5_00zPGd3wvpmTnmPgA5wXvjlAn72RgxpILBdFpJTk8Lyea5kEOpGgDPRJcChghoIrCBJNd9BXCjci4NoCCyfV-AHVYwostGjUcQH2ABgBiUMdbhnkmjBVhI6QQDGET_DGKHc2vtDNVhcg6K1EbirnKm4UzswAgxc3QyzjmelFY5h4w3_6cpPY42f-BHs9RU3VwBmaGgFGWD2vC5ZfvTbfYgkYMBF8Q_H9ORrDIIO6lymDhzjxTckK2PmFKtkjTLWPIccJD2ykKwxhZfAEqYFZksblHD9Zqz4PR4Xnym5OSbQKyYeUTIWIr9ueU9cy-wWQqtzNyadszXEDwGyCR1PvDGWQ3yj7nFs5fpGWgzITn4SDDiifYSrlHDk1MD09EqN87LJgKJjgc6zwaItBDAT2I4c42oyyiDxYOmNVKeVjEYep7VKhrzUJzgUNXS0re2TDDuEZfAHyTHHBBQM0GWsLhZATTjUljP5Inc1UooOFCxO-xS8rmqAhUxybLwPd-0wpxg6f51Q1YpOIT2lErYBGs57tV1kz4SG-z1camlbf95s5Fof2xEbhAiKOGw0b09CYOtcHVmLhA7qys-wc8TB9wQKZ3PFMUI5O2LJjiFIGUWWaxthV-tOzURTrgxFvOX5a5y0LAPtrCeqieY4tlpQx3T8hLe1kUV0BJzxgSQiuPJmjGTYCkLvT4yGmx0ZIakmXflvxb_wX2MDeXEpHjk_YAb3mPQ49GBCjjDA7L3S91tjrDMjNj6XXecC2aLvkJ7zR8odmiYMEtlQeEhn6jK4kkjHT4qNFFFXrg1PUyAwzL3nqfTnHHcYU06N7lceu1lYez2YPVOJ8hu_rUsg80GeitkXQC3xPEKWGjCQKygGuoly6K0mMvS2ryvapSlZ8AYjzJ1d9vdhiQSNSP68rfXKVdyDCg9NgWW8wcyQlMV0-w-HXWBxbbCePY7f5SPZHVQthVNusc6c5kUqSJ5xn3DSF8EqhyHukA1ekyxTWaWOfzUqBu0nN-CtBiea1Ty4OE5zDohLiWYYuJZB7XrOpjM0B_sfMhPiLctMejuvAWI7claWt43InsE9QVrijTSPCVSf9288LrEEC1rwT61JXcwhW4epsPCXSTCiaRfkrTuyYmliiTPmxYNs_81eZZtNRWiLnpoO77HXzGvJ8glMXNzKz9DagV4USy53iaJLpWa4sTcWG4jD_JPQlRNZJv8DhTciwxE2LS6tWPkte6DkFrDHc9YyL4koF_ArwlJW52ErFhQ52HYi9H3g2FGsp2HFuOsO-YOLBAF0KsRGY4ee66Pn3hLh-j6N8OdnnLhttztpqUCEmPbYm6i2W9kohKp0DKoblRhE24X0zplXLmJixPrSMJccQXIAauqZqkNZrui80lkfKaZREBe24R_alvUzSe65N-PUgpn3Hlh-0WaUFaEFW5aL9ikR8mY5LAnAXsaUunX97q4W9VthtdUmNJBoTtven2AIb_TGrJZL1tlrHtqXab9UbzPFkdRtgIWuOGdtlv25iKf7BHoRLqlSCfjbHndZ9o1vb9hrru859u95che11u3PXJJ1V0ACyDu7DbrfebtSY7W09VwI5vPlWhKtZtf9uAe016038NNqNRv2u3b6td7v3sOq2GncBIR0IvHYdIqTVrZFzK-SmJntW5CrBobxdZ5iw6nhIbGUAsAajhZpqZhdubjJVtPPgj_am7_u28CmfSJHwEFcQ2MR2ZcynPPtOr2rW6p41-V_z-sMV>53819</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [Formatter] Excess spaces around specializations in concepts
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          JohelEGP
      </td>
    </tr>
</table>

<pre>
    Here's the diffs after updating Clang.
```diff
 export template<class T, template<class> class Trait, class ValueType> concept base_characteristic_of =
-  base_characteristic_of_impl<T, Trait<T>, ValueType>;
+  base_characteristic_of_impl < T,
+                                                                               Trait<T>,
+ValueType > ;
 
-export template<class T, template<class> class U> concept distinguished_value_trait_in = value_trait_for<U<T>, T>;
+export template<class T, template<class> class U> concept distinguished_value_trait_in = value_trait_for < U<T>,
+T > ;

 template<class T, class U> concept scalable_with = //
-  std::common_with<number_scalar_t<T>, U> and      //
-  weakly_scalable<T> and                           //
-  weakly_scalable<U> and                           //
-  dividable_with<T, U> and                         //
-  inversible_number<U>;
+  std::common_with < number_scalar_t<T>,
+U > and                         //
+    weakly_scalable<T>and       //
+      weakly_scalable<U>and     //
+        dividable_with<T, U>and //
+          inversible_number<U>;

-export template<class T> concept vector_space =   //
-  negatable_number<T> and                         //
-  multipliable_with<number_scalar_t<T>, T, T> and //
-  inversible_number<number_scalar_t<T>>;
+export template<class T> concept vector_space = //
+  negatable_number<T> and                       //
+  multipliable_with < number_scalar_t<T>,
+T, T > and //
+       inversible_number<number_scalar_t<T>>;

-template<class T> concept bit_castable_to_storage   = bit_castable<storage_for<T>, T>;
+template<class T> concept bit_castable_to_storage   = bit_castable < storage_for<T>,
+T > ;
```
`.clang-format`:
```yaml
AccessModifierOffset: -2
AlignAfterOpenBracket: AlwaysBreak
AlignArrayOfStructures: None
AlignConsecutiveAssignments: Consecutive
AlignConsecutiveBitFields: true
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Right
AlignOperands: Align
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: Always
AllowShortCaseLabelsOnASingleLine: true
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: AllIfsAndElse
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: No
BinPackArguments: true
BinPackParameters: true
BitFieldColonSpacing: Both
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Attach
BreakBeforeConceptDeclarations: Allowed
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakInheritanceList: BeforeColon
BreakStringLiterals: true
ColumnLimit: 120
ConstructorInitializerIndentWidth: 2
ContinuationIndentWidth: 2
Cpp11BracedListStyle: true
DeriveLineEnding: false
DerivePointerAlignment: false
DisableFormat: false
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: Always
FixNamespaceComments: true
IncludeBlocks: Preserve
IncludeCategories:
  - Regex:      '<(experimental/)?[a-z_]+>' # C++ standard library
    Priority:   1
IndentAccessModifiers: false
IndentCaseBlocks: false
IndentCaseLabels: false
IndentPPDirectives: AfterHash
IndentRequiresClause: true
IndentWidth: 2
IndentWrappedFunctionNames: false
KeepEmptyLinesAtTheStartOfBlocks: false
LambdaBodyIndentation: Signature
Language: Cpp
MaxEmptyLinesToKeep: 1
NamespaceIndentation: Inner
PackConstructorInitializers: NextLine
PointerAlignment: Left
PPIndentWidth: -1
QualifierAlignment: Custom
QualifierOrder: ["static", "inline", "constexpr", "const", "volatile", "type"]
ReferenceAlignment: Pointer
ReflowComments: true
RequiresClausePosition: WithPreceding
ShortNamespaceLines: 0
SortIncludes: CaseInsensitive
SortUsingDeclarations: true
SpaceAfterLogicalNot: true
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInConditionalStatement: false
SpacesInLineCommentPrefix:
  Minimum: 1
  Maximum: 1
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Latest
TabWidth: 2
UseCRLF: false
UseTab: Never
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzFWFtz4jYU_jXOiycZLrk-8AAEWlqS0EC6j4xsHUBdWXIlmYT99T2SbGOMIdlOZ7qT2aytT-ccffrOxRtJuuv9CgqCzp0OzQZCylYrHZKVARVmKSWGiXU45ESsr4LWY9DqB7ct_2OR_lUIH6lUJjSQpJwYCLrDmBOtw0XQGR69DbqjMF9WhBkL8Y9_Ep7BYpeCQ0gRQ2rCiGhYxhuiSIwhMW1YvJSrMOg-et-X4QnIkqFb9Oli8J7sQ3dkn6uugu4gP1lncNYYOh26I1Xg_-mfWpSlmzLa0DJTxhvmDPxL9t-qNFN7UrHOmN4AXW6tw6Wx4SyZsGSH1VcrqdDcW4XPRY3H_yMkdz1vDfQtDmnLyWuOrSEOHRNOIg7Ld2Y2znHQGdufQn_a0KDbx59YJokUDodWRZZEoJZuu1pW1efME0H9rdesvQP5znfLwmu-bQ9v_POpjbeftkHZltHy3EUifWqnZoWJLSjNrBnPRx7LYdI1Meiu8ySH5ea38GciynO2meO9kYYtp0gtNjVuOcei3Xhi01do-yz1KwLeQmwkkpiSGJx-j25JwJoYcuDtU9HVTCQZNyzlrHrW0xmwKIpGWKfhhGZOmPpq1TnHxtEl_DwbRyaO2Piimj0vYRMxe338S348vefJibCUxkT70xu51EgVWYM9IjJVXcX9-WLeDk61gv_KoWOw0eXJQl9MKuXjVWwHmUvcnRBjF7r9GnRHEu5f9eMYtH6SOOYwUC84FQHS2g8vO_k6Z2vRt3PSSwpigPPCdw_o83ey0wOF5aKKVIrsXlZzo7LYZAq0hT5LARXMUAoNcWbYFvpa44sEhHHAykozfsDMmAGnDo0-TsAeARlQONThK4tcEa6r0BEKKAX6DO-cCR_jK1tvTAWCp1WoTe2Pii8qa3aAwY3rIZbxIvRqMFy-4199tc7c8ot4hg8zRU_NwBmGmgAyrF9WlcjPbptvsAQMuIy_o_n-HIPhUED9zdTBQ5z4piQCfryhyfYIU-1ryHEmYsd0QyC8Dp6gNDBLcl6O8ZOV7gs6qlxXsXNKkoiSLzmZSpmej72UrlP2K6BUhZ-TD9Va4gaA2QRPtt5ZyaC-0faxtkr8Ii8HdSU-Sw8dMDHDVCo1chhgvroXRn3ZZ8FQcinmWOExFosYSOxHHrGPGW0RtXNyxqpSy8cqDlPbp0LfGBIfGxr6WlY_kaMd6BF8AerIceUIFmgz1hUKqSaCGUY4-5EftnCJB6xsmIgNfqwYgoFMcWw-DfT3M2XIHV7PoWvEZomYsoQ5A-1Oq3jfFM1EULyfb4zaVt8POyUWh_bMsXACkabttuOU2lDnZsdrKnzEo2ydOkeC5jdYEZNfnkkm8BCu7Fih1EFM26Yx9pX-cG2UpGZnzTuNH9Z5pwLA_lqDejaPsdWSMmYfzyhLN1k0V8CJiHlGwZcnuzTDRgBqe7g8xPRYS8Wc6PKvlfAyfIU1fNhN-chxhx0w6Nzj0IOEWGeEu3nhIeiOg5sBufyxDG4esS26LnmHO7rh0D7iIIEtVVCiaMhZpFCMhZcQI2Lo2uy8o3YRmL3Jw9PXc9xjbDHdH69x2dfaxuXZ7JEpnM_wfn0K2Qv6lehNFfQKf2eI0kNOMg11gpskl79VJMXeVlRld1W1KH4HSMsr132z2GBBI8q8rBrP5CvvQNKd9-BUbzFzFCWxXb7A4Wcsji2uk6epf_lEPvauFtK6dlnnV0sh1SxPhCi0aQvhmUJR9kgPbkiXKazyxj6b1Yi7zMP4I0OL9rYPNg4znMOSGuJFUZ8SqL2g09E25hj_YWdC_MWEbQ_759hGjtpVtVf7x63EPsF4ZY-xjQifbvL_-3mFFSjAmncQXX7UEoJVuDkbD4U0k5oVLH_DiR1TE0uULT8O7PpneSvTYjrKS-TcdnCfvX5eQ51PcOoS1maR3hb0ptFivVPsQ7I9y5elqVwzHOafpTmFKDrp77B7l4rWtOlwedUqZ8kTPaeCtYH7nnHSXK2AnwEeqrI02-i40sHOA7H3gyiGYqMk389NR9hXTDwY4JEoNgI7_Jw3Pf87I77f4yhfT_a5z0aXs64aNJjJl12IZoOlvdGIzueAhmG5XYVNRN-Oac02Jnasp06xZE_BCaiVa-4GZb1iH5XG8sQES7Kk4h3fkY_au8LSZ0ebiPMk5n3HlR-MWecFaEGietF-QyG-Tsc1A_gWsbUuXX69XdBelz50H8iFYYZDD0uRnwBsPbh5DEcftoOFLoV1SJTM8CNbpxA7ifqExM_r4utUX2SK9zbGpK4Tu4_xNZaGLLqKsf51xpxvi1-XqZJ_YevCR6Z1hvR0xjfd-_bDxaYXXd_Tdry6pbed6-tudBtFq1X7PqJ3lJI4vru54K4l9nzlFPAeOhO-1F2wXqfVwZ_2dbvdur2-vmo9PNxD9NBt38aE3EAcXLcgQS1d2TiupFpfqJ4LKcpwEr9uccxSvV8krhyAY8faJ5nB2tb7TW6Aj36ZXTjfPRf7P7Wtro8">