<div dir="ltr">The feature we are proposing is entirely about the C++ ABI, which is wholly an issue in the front end.  The "C ABI" is really the target-specific language-independent ABI underlying all language front ends.  There are various switches that affect that already and having a more straightforward one to collect various ABI concerns might be a worthwhile feature.  But I think that is entirely orthogonal to the C++-specific issues we are discussing here.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Aug 6, 2020 at 12:35 AM Chris Hanson <<a href="mailto:cmh@mac.com">cmh@mac.com</a>> wrote:<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 Aug 5, 2020, at 4:11 PM, Leonard Chan via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:<br><div><blockquote type="cite"><br><div><span style="font-family:Arial;font-size:14.6667px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;text-decoration:none;float:none;display:inline">The flag would look something like `-fc++-abi=` and override the default C++ ABI selected by the target. It's up to the user to make sure that the ABI and target combination makes sense.</span><br></div></blockquote></div><br><div>I like this idea and I know people in the retrocomputing and alt-OS community would find it useful. (Example: Haiku binary compatibility with BeOS is currently implemented by using a very old GCC. This would allow easier experimentation with implementing a compatible ABI in a modern compiler.)</div><div><br></div><div>Should it be specific to the C++ ABI though? Or should there be an equivalent for C ABI? (Example: The LLVM 68000 back-end that's in progress currently targets the SVR4 ABI, but users of the compiler will definitely want support for Amiga, Atari, classic Mac OS, Sun, HP, etc. ABIs.) I suppose for C this is implied by the target triple, but it might be useful to have a separate switch for it.</div><div><br></div><div>  -- Chris</div><div><br></div></div></blockquote></div>