source: src/Validate/ForallPointerDecay.hpp @ b9b6efb

Last change on this file since b9b6efb was 14c0f7b, checked in by Andrew Beach <ajbeach@…>, 17 months ago

Added invariant to check that referenced declarations are in scope. This one took a while, I don't remember why forall pointer decay is involved.

  • Property mode set to 100644
File size: 1.3 KB
Line 
1//
2// Cforall Version 1.0.0 Copyright (C) 2018 University of Waterloo
3//
4// The contents of this file are covered under the licence agreement in the
5// file "LICENCE" distributed with Cforall.
6//
7// ForallPointerDecay.hpp --
8//
9// Author           : Andrew Beach
10// Created On       : Tue Dec  7 16:15:00 2021
11// Last Modified By : Andrew Beach
12// Last Modified On : Sat Apr 23 13:13:00 2022
13// Update Count     : 1
14//
15
16#pragma once
17
18#include <vector>
19#include "AST/Node.hpp"
20
21namespace ast {
22        class DeclWithType;
23        class TranslationUnit;
24}
25
26namespace Validate {
27
28/// Cleans up assertion lists and expands traits.
29/// Also checks that operator names are used properly on functions.
30/// This is a "legacy" pass.
31/// Must happen before auto-gen routines are added.
32void decayForallPointers( ast::TranslationUnit & transUnit );
33
34/// Sets uniqueIds on any declarations that do not have one set.
35/// Must be after implement concurrent keywords; because uniqueIds must be
36/// set on declaration before resolution.
37void fixUniqueIds( ast::TranslationUnit & transUnit );
38
39/// Expand all traits in an assertion list.
40std::vector<ast::ptr<ast::DeclWithType>> expandAssertions(
41        std::vector<ast::ptr<ast::DeclWithType>> const & );
42
43}
44
45// Local Variables: //
46// tab-width: 4 //
47// mode: c++ //
48// compile-command: "make install" //
49// End: //
Note: See TracBrowser for help on using the repository browser.