<div dir="ltr">Thanks a lot, that was exactly what I was looking for!<div><br></div><div>Best regards,</div><div>O. Major</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Mi., 29. Juli 2020 um 15:13 Uhr schrieb Marshall Clow <<a href="mailto:mclow.lists@gmail.com">mclow.lists@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;">On Jul 29, 2020, at 5:32 AM, Oliver Major via libcxx-dev <<a href="mailto:libcxx-dev@lists.llvm.org" target="_blank">libcxx-dev@lists.llvm.org</a>> wrote:<br><div><blockquote type="cite"><br><div><div dir="ltr">Hello everyone,<div><br></div><div>I am new here and in fact not subscribed, I just have a question and don't even know if I am at the right address.</div><div><br></div><div>We recently found a bug in our product code when building with NDK Clang for Android and it is related to the LLVM libcxx. It is fairly easy to reproduce and a quick internet search reveals that we are not the only ones with this or a similar issue.</div><div><br></div><div>What we did, was</div><div><font face="monospace">#define hash #</font></div><div><br></div><div>before</div><div><font face="monospace">#include <math.h></font></div><div><br></div><div>which let to a problem with libcxx/include/type_traits:417  <br></div><div><code><span>template</span> <span><</span><span>class</span> <span>_Tp</span><span>></span> <span>struct</span> <span>_LIBCPP_TEMPLATE_VIS</span> <span>hash</span><span>;</span></code> <br></div><div><br></div><div>of course. We obviously shouldn't let defines leak into the stdlib, so it is our fault, we fixed it simply by renaming the define.</div></div></div></blockquote><div><br></div>Good.</div><div><br><blockquote type="cite"><div><div dir="ltr"><div><br></div><div>I didn't want to post it as a bug in the LLVM bugtracker, because I don't even think it needs fixing on LLVM side. I just wanted to make aware that this issue exists for some people and wanted to ask if there is a way to publicly document this issue somewhere, so people having problems with this can potentially find a solution on the internet.</div></div></div></blockquote><br></div><div>You’re not allowed to #define names that are defined in the standard library..</div><div>See <a href="http://eel.is/c++draft/macro.names" target="_blank">http://eel.is/c++draft/macro.names</a>, which states:</div><div><br></div><div>A translation unit that includes a standard library header shall not #define or #undef names declared in any standard library header.<br><br></div><div>— Marshall</div></div></blockquote></div>