mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-27 05:26:07 +00:00

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
29 lines
892 B
C++
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_
|