source: src/ResolvExpr/ResolveTypeof.h @ e6e1a12

Last change on this file since e6e1a12 was f02f546, checked in by Michael Brooks <mlbrooks@…>, 18 months ago

Implement new rules for array dimension expression matching.

Core changes:
src/ResolvExpr/Unify.cc: add sense of "these two expressions unify"
src/InitTweak/GenInit.cc: make hoisting happen more often
tests/array-container/*: reconfigure the array-dimension test to use non-"classic" expectation rules

Misc contributors and noise:
libcfa/src/parseargs.cfa: ,ake a parameter, that's used as a length expression, constant (example of an array user following new rules)
src/ResolvExpr/ResolveTypeof.h: make fixArrayType public
src/Validate/GenericParameter.cpp: do the array-type desugaring in both AST corners that forall-variables can be found (not just in one of them)
tests/.expect/typedefRedef-ERR1.txt: old one was "expecting" a bug, that new array rules handle correctly

  • Property mode set to 100644
File size: 1.0 KB
Line 
1//
2// Cforall Version 1.0.0 Copyright (C) 2015 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// ResolveTypeof.h --
8//
9// Author           : Richard C. Bilson
10// Created On       : Sun May 17 12:14:53 2015
11// Last Modified By : Andrew Beach
12// Last Modified On : Wed Mar 16 11:33:00 2022
13// Update Count     : 4
14//
15
16#pragma once
17
18class Type;
19namespace SymTab {
20class Indexer;
21}  // namespace SymTab
22namespace ast {
23        class Type;
24        class ObjectDecl;
25}
26
27namespace ResolvExpr {
28        struct ResolveContext;
29
30        Type *resolveTypeof( Type*, const SymTab::Indexer &indexer );
31        const ast::Type * resolveTypeof( const ast::Type *, const ResolveContext & );
32        const ast::Type * fixArrayType( const ast::Type *, const ResolveContext & );
33        const ast::ObjectDecl * fixObjectType( const ast::ObjectDecl * decl , const ResolveContext & );
34} // namespace ResolvExpr
35
36// Local Variables: //
37// tab-width: 4 //
38// mode: c++ //
39// compile-command: "make install" //
40// End: //
Note: See TracBrowser for help on using the repository browser.