source: src/Validate/FindSpecialDecls.h@ 8fd1b7c

ADT ast-experimental
Last change on this file since 8fd1b7c was 11df881, checked in by Andrew Beach <ajbeach@…>, 3 years ago

Updated documentation on pre-resolver passes, moving code to headers instead of uses. Note that some comments were just copied over, I don't know if they are accurate.

  • Property mode set to 100644
File size: 1.7 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// FindSpecialDeclarations.h -- Find special declarations used in the compiler.
8//
9// Author : Rob Schluntz
10// Created On : Thu Aug 30 09:49:02 2018
11// Last Modified By : Andrew Beach
12// Last Modified On : Wed Nov 10 15:16:00 2021
13// Update Count : 3
14//
15
16#pragma once
17
18#include <list> // for list
19
20class Declaration;
21class FunctionDecl;
22class StructDecl;
23class Type;
24
25namespace ast {
26 class TranslationUnit;
27}
28
29namespace Validate {
30 /// size_t type - set when size_t typedef is seen. Useful in a few places,
31 /// such as in determining array dimension type
32 extern Type * SizeType;
33
34 /// intrinsic dereference operator for unqualified types - set when *? function is seen in FindSpecialDeclarations.
35 /// Useful for creating dereference ApplicationExprs without a full resolver pass.
36 extern FunctionDecl * dereferenceOperator;
37
38 /// special built-in functions and data structures necessary for destructor generation
39 extern StructDecl * dtorStruct;
40 extern FunctionDecl * dtorStructDestroy;
41
42 /// find and remember some of the special declarations that are useful for generating code, so that they do not have to be discovered multiple times.
43 void findSpecialDecls( std::list< Declaration * > & translationUnit );
44
45/// Find and remember some of the special declarations that are useful for
46/// generating code, so that they do not have to be discovered multiple times.
47void findGlobalDecls( ast::TranslationUnit & translationUnit );
48
49} // namespace Validate
50
51// Local Variables: //
52// tab-width: 4 //
53// mode: c++ //
54// compile-command: "make install" //
55// End: //
Note: See TracBrowser for help on using the repository browser.