-- d_S
-- d_T Output trace information on invocation path recording
-- d_U
- -- d_V
+ -- d_V Enable verifications on the expanded tree
-- d_W
-- d_X
-- d_Y
-- it is checked, and the progress of the recursive trace through
-- elaboration calls at compile time.
- -- d_T The compiler outputs trance information to standard output whenever
+ -- d_T The compiler outputs trace information to standard output whenever
-- an invocation path is recorded.
+ -- d_V Enable verification of the expanded code before calling the backend
+ -- and generate error messages on each inconsistency found.
+
-- d1 Error messages have node numbers where possible. Normally error
-- messages have only source locations. This option is useful when
-- debugging errors caused by expanded code, where the source location
with SCIL_LL;
with Tbuild; use Tbuild;
with Types; use Types;
+with VAST;
procedure Frontend is
begin
null;
end if;
+ -- Verify the validity of the tree
+
+ if Debug_Flag_Underscore_VV then
+ VAST.Check_Tree (Cunit (Main_Unit));
+ end if;
+
-- Dump the source now. Note that we do this as soon as the analysis
-- of the tree is complete, because it is not just a dump in the case
-- of -gnatD, where it rewrites all source locations in the tree.
ada/urealp.o \
ada/usage.o \
ada/validsw.o \
+ ada/vast.o \
ada/warnsw.o \
ada/widechar.o
--- /dev/null
+------------------------------------------------------------------------------
+-- --
+-- GNAT COMPILER COMPONENTS --
+-- --
+-- V A S T --
+-- --
+-- B o d y --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+-- Dummy implementation
+
+package body VAST is
+
+ ----------------
+ -- Check_Tree --
+ ----------------
+
+ procedure Check_Tree (GNAT_Root : Node_Id) is
+ pragma Unreferenced (GNAT_Root);
+ begin
+ null;
+ end Check_Tree;
+
+end VAST;
--- /dev/null
+------------------------------------------------------------------------------
+-- --
+-- GNAT COMPILER COMPONENTS --
+-- --
+-- V A S T --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+-- This package is the entry point for VAST: Verifier for the Ada Semantic
+-- Tree.
+
+with Types; use Types;
+
+package VAST is
+
+ procedure Check_Tree (GNAT_Root : Node_Id);
+ -- Check the validity of the given Root tree
+
+end VAST;