llvm-project/clang/test/SemaCXX/warn-pure-virtual-call-from-ctor-dtor.cpp
Chandler Carruth 5925926a2f Fix missing braces around two statements that were intended to be part
of a single if block. This is really annoying to track down and test.
Silly changes to the test case caused it to stop showing up. I wish
there were a more concrete way of asserting that a note attaches to the
intended diagnostic.

This fixes PR10195.

llvm-svn: 133907
2011-06-27 08:31:58 +00:00

15 lines
572 B
C++

// RUN: %clang_cc1 %s -fsyntax-only -verify
struct A {
A() { f(); } // expected-warning {{call to pure virtual member function 'f'; overrides of 'f' in subclasses are not available in the constructor of 'A'}}
~A() { f(); } // expected-warning {{call to pure virtual member function 'f'; overrides of 'f' in subclasses are not available in the destructor of 'A'}}
virtual void f() = 0; // expected-note 2 {{'f' declared here}}
};
// Don't warn (or note) when calling the function on a pointer. (PR10195)
struct B {
A *a;
B() { a->f(); };
~B() { a->f(); };
};