juliehockett marked 3 inline comments as done.
juliehockett 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]
----------------
aaron.ballman wrote:
> 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.
Makes sense -- we think the declaration is the important one to limit here. The 
check for constructed virtual objects can be moved to a different checker if it 
becomes necessary.


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