Skip to content

Commit

Permalink
[flang] Fix compilation warning in check-directive-structure.h
Browse files Browse the repository at this point in the history
Clang 9 gets the following warning after revision `D85104`.
```
../../flang/lib/Semantics/check-directive-structure.h:36:7: error: 'Fortran::semantics::DirectiveStructureChecker<llvm::omp::Directive, llvm::omp::Clause, Fortran::parser::OmpClause, 77>' has virtual functions but non-virtual destructor [-Werror,-Wnon-virtual-dtor]
```

The fix is the make the destructor virtual. Neither it nor the
constructor need to be public, so make them protected.

Differential Revision: https://reviews.llvm.org/D85383
  • Loading branch information
tskeith committed Aug 6, 2020
1 parent 9f717d7 commit 6d2d730
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions flang/lib/Semantics/check-directive-structure.h
Expand Up @@ -34,13 +34,13 @@ template <typename C, std::size_t ClauseEnumSize> struct DirectiveClauses {
// typename PC is the parser class defined in parse-tree.h for the clauses.
template <typename D, typename C, typename PC, std::size_t ClauseEnumSize>
class DirectiveStructureChecker : public virtual BaseChecker {
public:
protected:
DirectiveStructureChecker(SemanticsContext &context,
std::unordered_map<D, DirectiveClauses<C, ClauseEnumSize>>
directiveClausesMap)
: context_{context}, directiveClausesMap_(directiveClausesMap) {}
virtual ~DirectiveStructureChecker() {}

protected:
struct DirectiveContext {
DirectiveContext(parser::CharBlock source, D d)
: directiveSource{source}, directive{d} {}
Expand Down

0 comments on commit 6d2d730

Please sign in to comment.