source: src/Validate/FindSpecialDecls.h @ 3d5701e

ADTarm-ehast-experimentalenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprpthread-emulationqualifiedEnum
Last change on this file since 3d5701e was 2bfc6b2, checked in by Rob Schluntz <rschlunt@…>, 6 years ago

Refactor FindSpecialDeclarations? and associated special declarations

  • Property mode set to 100644
File size: 1.4 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 --
8//
9// Author           : Rob Schluntz
10// Created On       : Thu Aug 30 09:49:02 2018
11// Last Modified By : Rob Schluntz
12// Last Modified On : Thu Aug 30 09:51:12 2018
13// Update Count     : 2
14//
15
16#pragma once
17
18#include <list>  // for list
19
20class Declaration;
21class FunctionDecl;
22class StructDecl;
23class Type;
24
25namespace Validate {
26        /// size_t type - set when size_t typedef is seen. Useful in a few places,
27        /// such as in determining array dimension type
28        extern Type * SizeType;
29
30        /// intrinsic dereference operator for unqualified types - set when *? function is seen in FindSpecialDeclarations.
31        /// Useful for creating dereference ApplicationExprs without a full resolver pass.
32        extern FunctionDecl * dereferenceOperator;
33
34        /// special built-in functions and data structures necessary for destructor generation
35        extern StructDecl * dtorStruct;
36        extern FunctionDecl * dtorStructDestroy;
37
38        /// 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.
39        void findSpecialDecls( std::list< Declaration * > & translationUnit );
40} // namespace Validate
41
42// Local Variables: //
43// tab-width: 4 //
44// mode: c++ //
45// compile-command: "make install" //
46// End: //
Note: See TracBrowser for help on using the repository browser.