Changeset 68b52b0
- Timestamp:
- Jun 23, 2021, 4:52:43 PM (3 years ago)
- Branches:
- ADT, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 6448f7d
- Parents:
- b680198
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.cc
rb680198 r68b52b0 1076 1076 if ( variable.tyClass != TypeDecl::NUMBER_OF_KINDS ) { 1077 1077 // otype is internally converted to dtype + otype parameters 1078 static const TypeDecl::Kind kindMap[] = { TypeDecl::Dtype, TypeDecl::D Stype, TypeDecl::Dtype, TypeDecl::Ftype, TypeDecl::Ttype, TypeDecl::Dimension };1078 static const TypeDecl::Kind kindMap[] = { TypeDecl::Dtype, TypeDecl::Dtype, TypeDecl::Dtype, TypeDecl::Ftype, TypeDecl::Ttype, TypeDecl::Dimension }; 1079 1079 static_assert( sizeof(kindMap) / sizeof(kindMap[0]) == TypeDecl::NUMBER_OF_KINDS, "DeclarationNode::build: kindMap is out of sync." ); 1080 1080 assertf( variable.tyClass < sizeof(kindMap)/sizeof(kindMap[0]), "Variable's tyClass is out of bounds." ); 1081 TypeDecl * ret = new TypeDecl( *name, Type::StorageClasses(), nullptr, kindMap[ variable.tyClass ], variable.tyClass == TypeDecl::Otype , variable.initializer ? variable.initializer->buildType() : nullptr );1081 TypeDecl * ret = new TypeDecl( *name, Type::StorageClasses(), nullptr, kindMap[ variable.tyClass ], variable.tyClass == TypeDecl::Otype || variable.tyClass == TypeDecl::DStype, variable.initializer ? variable.initializer->buildType() : nullptr ); 1082 1082 buildList( variable.assertions, ret->get_assertions() ); 1083 1083 return ret; -
tests/.expect/forall.txt
rb680198 r68b52b0 1 forall.cfa:2 16:25: warning: Compiled1 forall.cfa:242:25: warning: Compiled -
tests/forall.cfa
rb680198 r68b52b0 199 199 } 200 200 201 forall( T ) void check_otype() { 202 T & tr = *0p; 203 T * tp = 0p; 204 205 &tr += 1; 206 tp += 1; 207 T & tx = tp[1]; 208 209 T t; 210 T t2 = t; 211 } 212 213 forall( T * ) void check_dstype() { 214 T & tr = *0p; 215 T * tp = 0p; 216 217 &tr += 1; 218 tp += 1; 219 T & tx = tp[1]; 220 } 221 222 forall( T & ) void check_dtype() { 223 T & tr = *0p; 224 T * tp = 0p; 225 } 226 201 227 //otype T1 | { void xxx( T1 ); }; 202 228
Note: See TracChangeset
for help on using the changeset viewer.