rjmccall added inline comments.

================
Comment at: clang/include/clang/Basic/LangOptions.def:329
+        "Whether to use clang's relative C++ ABI "
+        "for classes with vtables")
+
----------------
leonardchan wrote:
> rjmccall wrote:
> > Yeah, see, this plays into the question above.  I would not want to provide 
> > this as a language option for general use.  The attribute seems good enough 
> > for testing, and if you want a -cc1 option to apply the attribute by 
> > default for experimentation during Fuchsia bring-up that's fair, but I 
> > don't want something that suggests to users that it's okay to pass this 
> > attribute and change the system default.
> Ok. So is this the reason for the white list approach mentioned in D17893? As 
> an alternative, would you also be ok with creating a `FuchsiaCXXABI` that 
> subclasses `ItaniumCXXABI`, similar to the ARM and WebAssembly ones? This way 
> it doesn't change the system default.
That design for relative v-tables was intended (at least as it was described to 
me) as an optimization for certain classes in a project that still needed to 
interoperate with system and other non-project C++ code.  It was initially 
attempting to apply the optimization eagerly to all classes that didn't match a 
blacklist of classes (and namespaces of classes) that needed to follow the 
system ABI, which I objected to, which is why I asked for it to be redesigned 
around applying the optimization only to whitelisted classes/namespaces.  None 
of that applies if you're changing the system ABI rule unless you decide you 
want to allow classes to opt into standard Itanium v-tables.

If introducing a `FuchsiaCXXABI` class makes the code easier, go for it.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D58321/new/

https://reviews.llvm.org/D58321



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to