llvm-project/flang/lib/Semantics/check-deallocate.h
Peter Klausler e9a8ab004c [flang] Use definability tests for better PURE constraint checking
Many semantic checks for constraints related to PURE subprograms
can be implemented in terms of Semantics' "definable.h" utilities,
slightly expanded.  Replace some particular PURE constraint
checks with calls to WhyNotDefinable(), except for cases that
had better specific error messages, and start checking some
missing constraints with DEALLOCATE statements and local
variable declarations.

Differential Revision: https://reviews.llvm.org/D147389
2023-04-03 07:00:07 -07:00

29 lines
892 B
C++

//===-- lib/Semantics/check-deallocate.h ------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifndef FORTRAN_SEMANTICS_CHECK_DEALLOCATE_H_
#define FORTRAN_SEMANTICS_CHECK_DEALLOCATE_H_
#include "flang/Semantics/semantics.h"
namespace Fortran::parser {
struct DeallocateStmt;
}
namespace Fortran::semantics {
class DeallocateChecker : public virtual BaseChecker {
public:
DeallocateChecker(SemanticsContext &context) : context_{context} {}
void Leave(const parser::DeallocateStmt &);
private:
SemanticsContext &context_;
};
} // namespace Fortran::semantics
#endif // FORTRAN_SEMANTICS_CHECK_DEALLOCATE_H_