aaron.ballman added inline comments.

================
Comment at: test/clang-tidy/fuchsia-virtual-inheritance.cpp:34-36
+  // CHECK-MESSAGES: [[@LINE-1]]:28: warning: constructing a class that 
inherits a virtual base class is disallowed [fuchsia-virtual-inheritance]
+  // CHECK-NEXT:  D(int value) : A(value), B(), C() {}
+  // CHECK-MESSAGES: [[@LINE-3]]:33: warning: constructing a class that 
inherits a virtual base class is disallowed [fuchsia-virtual-inheritance]
----------------
juliehockett wrote:
> aaron.ballman wrote:
> > I'm also not certain this should be diagnosed either. It's technically 
> > correct because it's calling the base class constructors here, but at the 
> > same time, it seems very low-value and likely to cause the user to do 
> > something really bad, like silence the warning by not calling the base 
> > class constructors.
> I see what you mean, but where then would you draw the line between warning 
> and not? We could warn for construction everywhere except in initialization 
> lists, but that seems like it might open the door to trivially get around the 
> check in ways that should be disallowed.
Would it be sufficient to only flag at the point of inheritance, or do you have 
existing header files with class declarations using virtual inheritance and are 
worried about consumers inheriting from those?

e.g., flag declarations but not construction.


https://reviews.llvm.org/D40813



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

Reply via email to