<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylVk1zozgQ_TX40gXFZ7APPjh2sptTDjtVe9ySQYA2gBhJ-GN-_T7xYccez9ZMDXGMLFqt169ft9jL_Lz-Uzjh1vF3jr8Zv9-oEG1OpmKGnCff_Ttzwmd8Qt_NuRZly4xUeEBOuDxWIqvojUpu6CDYYN_xnLVGZBg74YqEplIcRFvSkakWd02Fkg3psza8oYqznCsNDDQ6g702irUlJwYYos1kqwVsW0NHYSr6Y7v16EvFqZMCc7K4c2U9GEm67zrFtb7b1lSwFC0xymrOWjw9k3vvgSlOrTTWzR77MJNVPKf9mXo9YdXy6jdjrTWGJcsM7PpOth5te6WAuT7TEc445h-CwiQgIXZZc_KyrgP7GA3sI_a6B-dYBmLYBI_ynttlD-lsWKakphGPJR35kornV34bBFzLI_zYfb_2rBbmbFm8wrAIvFtJVOyA8PQHtxkhJ3nOCg45HJxkBxlUxnTaiTZO-IqP4gfBj9qr60PjSVViahcET1G6tHqwOZS9QXI1QFhcNs2d1Obi-y_Dso_3A1cFgD7aQVsDORl4mWww97Xn2ghoBePUj5fLOIX-Xit5dI10RxpcmHYITrkzeW4hlTuShnAgfJ67onVNJVTudkyZs3tRKLBXHMqA3EFvgZTuAWNMFRYMwmsQB9XigyPvjPZ9OYnlzQnThhQTekiKIevphuOXE2s6kJ_JfEp_Lrlusc7YAuLXfIMk1IAtv5UXe7bI7Cb7flxhH29r1I81CPB8tIg2nzeztTl8ILhpZiB2lhyGAwX_DBSEXjUbRZ1iZcNIthn_7BAl22eGXqWcZtPncUC4bJmenOhu5nyZcdLddTxvNGaDXt_fB6_ps3ciJ9pREEY2XO88_IrCwK6-DeqnIm2YaEPv02w0xQ6_27vgo5fPLi14uxr8WlE8CBiAqRjwAf5N4IqbXrVUeKeb6H8Nf0zl2JLJFVPdz9gv3ff7-OLHuzz0n1kB_cIeEwnXPaNNgv8gwtcsXDucD5Ch1IURaD7f5obLaDsfNMRP6Pca1WzbwQ9OoGT3M4TPl5O8zNn7gcKjja2SILU40T-5vfNTh-4EtEOPHfoEyiq1m4Tpb0iV7q4LumBmC0dqy5VlyvsfdexswQ-9p2EfnDRIA-7Xqd1UrOvO9qgoxMn2nOaseV0MneJtPJK0bDiVvUA-s9t29KVi7QeaXrDI11G-ilZswXp0brXOmKqlLll94N-6Ra_q9W1zLtHg-_3Ule0ZMN3cTsl_eWbwU2iNbo1BEq7ieFGtn9Inv9iHMS9WSZqv8iItYj9hq5CzeBXs2aJme17rNdTghOGozmiDpLTQCQ63EGpY_D4QsQ79MPQD_C2TxH_ylsHKXwaJHwTxarnMAif2OUReX862hVoPLtHpNR7WeFG5HnwLpq1aOR9wA6ERpubrh3Ieevz9y8p0mk8Hk-3sty8qiwH_egD_HyIkA04>52944</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Wc++20-designator gives warnings from macros defined in system headers
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang:frontend
      </td>
    </tr>

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

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

<pre>
    Hi,

I find that `-Wc++20-designator` (which I get via `-pedantic`) is giving warnings from system headers, which is strange and inconsistent with GCC. The point of system headers is to suppress warnings from them in a clean way - system headers are not to be patched by users, so warnings cannot be acted upon. Currently we need to suppress warnings to the whole .cpp file that includes such a header due to warnings from system macros not being ignored, which may lower the quality of the whole file.

I have asked in [cfe-dev](https://reviews.llvm.org/D116378) without answer, and posted in [StackOverflow](https://stackoverflow.com/questions/70488470/how-to-ignore-compiler-warnings-for-macros-defined-in-third-party-headers) where I got feedback that this is most likely a bug, so I'm raising it here.

Example code that doesn't give warnings in GCC (9.4.0), but does in Clang (14.0.0):

```cpp
// include/third_party2.h
#pragma once

struct Foo
{
    int x;
    int y;
};

#define FOO Foo{.x = 123, .y = 321}
```

```cpp
// main2.cpp
#include <third_party2.h>

int main() 
{
    Foo f = FOO;
    return f.x;
}
```

```cpp
$ g++ -isystem include -pedantic main2.cpp
$
```
```cpp
$ clang++ -isystem include -pedantic main2.cpp 
main2.cpp:5:13: warning: designated initializers are a C++20 extension [-Wc++20-designator]
    Foo f = FOO;
            ^
include/third_party2.h:9:17: note: expanded from macro 'FOO'
#define FOO Foo{.x = 123, .y = 321}
                ^
1 warning generated.
```

Does this make sense? I'm happy to fix it myself but I need some guidance.

Thanks!
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJylVk1z4jgQ_TXm0mWXPyCGA4cEkt2c5rBTtcctYbdtbWzLI8l8zK_fJ9tAYJmtmVpCgpBbrdevX3dnp_LT-nfpxRsv3Hrh8_j3nQrZ5mQrYcl7Cv0_My9-wTsO_ZyNLFthlcYD8uLloZJZRe9UsqW9FIN9x7lorcyw9uIVSUOl3Mu2pIPQLT4NFVo1ZE7GckMVi5y1AQYancHeWC3akkkAhmwz1RoJ29bSQdqKfttsAvpaMXVKYk8Vd66cB6vI9F2n2Zi7a20FS9mSoKxm0eLpifx7D0Iztco6NzvcI2xWcU67E_VmwmrU1W8mWmcMS5FZ2PWdagPa9FoDc32iA5wx9h-CwiYgIXZVMwVZ14F9rAb2EXvdg3McAzFigkd5z-7YQzobkWllaMTjSEe-lOb8ym-DgGt1gB9377de1NKeHItXGA5BcCuJSuwRnvlglxHyFi9ZwZDD3ltsIYPK2s54ybMXv-GteS_5YIK63jeB0iW2tlH0lKRLpweXQ9VbJNcAhMPl0twpYy--_7Ai-_iyZ10A6KMbjDNQk0GQqQZ733o2VkIrWKfhfLmcp9DfW6UOvlX-SIMP0w7Baf9Mnl8o7Y-kIRwIn3Nftr6tpM79Tmh78i8KBfaKoQzIHfQWSOkOMMZU4cAgvAZxUC0_GHkXtOvLSSzvXpw2pIU0Q1IsOU83HL8eRdOB_EzlU_pzxabFOesKiK_5BkmoAVd-q2AeuCJzl-z68YR7vKlRP84gwvPRInn-fJmrzeENwU07A7FnyWE5UPDXQEEcVGejpNOibASpNuPPDlGyfWbpTalpN30ZF4SXK9Ojl9ztnC47Xrq9rs8Xjdmgty9fBq_pS3AkL9lSFCcu3OA0fEviyJ2-DeqnIm2EbOPg024yxQ6_m7vgk9fPLh14dxr8OlE8CBiAqRjwAf5N4Jptr1sqguNN9L-Gf07l2JLJl1Pdn7Ffuu-_45s_vuWh_8wJ6BfumEi43pk8L_AbJfhzFq5bngfIUOrSSjSf7-eGK2hzHjTER_R7g2p27eAHE2ix_RnCzy9v8XrO3g8Unjy7KolShxP9k90nHzt0J6AdeuzQJ1BWqbskTv-HVOnudUEXndnCSG1ZO6aC_1DH1hX80Hsa8cFkQBpwv03tphJdd3KjopBH13Oak-G6GDrF-ziSjGqYyl4in9ltO_paifYDTS-a5eskXyUrMbPS1rx-mIyhQ92P2mkWTW3V9aXbMTvrdb2-bewlhkO_mzq6mx_Th99p9TdnFl-lMej0WCzi1Xw-q9arlUh3SZ4_RUW8DHOOosUqETGn4SqLOApntdhxbdZQkhfHo7KTZyBsoTEMxhhKmsl1HMZxGOFnuViET8EyWoXLaBFG0Xy1XGaRNw8Z8q4vU22m1wMy9HiDhzX-RbmOvJkwjhrm4Vb4Fz2mnl5nQtfKlKLe8_duNoSyHuL4B-IM7VM">