Changes in / [49510db:a950021]
- Files:
-
- 2 deleted
- 16 edited
-
libcfa/src/concurrency/future.hfa (modified) (4 diffs)
-
libcfa/src/concurrency/pthread.cfa (modified) (2 diffs)
-
src/Concurrency/Keywords.cpp (modified) (2 diffs)
-
tests/.expect/attributes.arm64.txt (modified) (10 diffs)
-
tests/.expect/attributes.x64.txt (modified) (10 diffs)
-
tests/.expect/attributes.x86.txt (modified) (10 diffs)
-
tests/Makefile.am (modified) (2 diffs)
-
tests/attributes.cfa (modified) (8 diffs)
-
tests/collections/queue.cfa (modified) (6 diffs)
-
tests/collections/sequence.cfa (modified) (6 diffs)
-
tests/collections/stack.cfa (modified) (7 diffs)
-
tests/collections/vector-demo.cfa (modified) (2 diffs)
-
tests/configs/usage.cfa (modified) (1 diff)
-
tests/ctrl-flow/.expect/superfluous.txt (deleted)
-
tests/ctrl-flow/labelledExit.cfa (modified) (4 diffs)
-
tests/ctrl-flow/loop_else.cfa (modified) (1 diff)
-
tests/ctrl-flow/superfluous.cfa (deleted)
-
tests/designations.cfa (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/future.hfa
r49510db ra950021 9 9 // Author : Thierry Delisle & Peiran Hong & Colby Parsons 10 10 // Created On : Wed Jan 06 17:33:18 2021 11 // Last Modified By : Kyoung Seo12 // Last Modified On : Mon Jan 27 20:35:00 202513 // Update Count : 3 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Nov 29 16:07:34 2024 13 // Update Count : 30 14 14 // 15 15 … … 260 260 if( this.has_first != false) abort("Attempting to reset a multi_future with at least one blocked threads"); 261 261 if( !is_empty(this.blocked) ) abort("Attempting to reset a multi_future with multiple blocked threads"); 262 reset( (future_t&) *(future_t*)((uintptr_t)&this + sizeof(monitor$)));262 reset( (future_t&)this ); 263 263 } 264 264 … … 266 266 bool fulfil( multi_future(T) & this, T result ) { 267 267 this.result = result; 268 return fulfil( (future_t&) *(future_t*)((uintptr_t)&this + sizeof(monitor$))) != 0p;268 return fulfil( (future_t&)this ) != 0p; 269 269 } 270 270 … … 275 275 bool w = !sw; 276 276 if ( sw ) { 277 w = wait( (future_t&) *(future_t*)((uintptr_t)&this + sizeof(monitor$)));277 w = wait( (future_t&)this ); 278 278 $first_done( this ); 279 279 } -
libcfa/src/concurrency/pthread.cfa
r49510db ra950021 9 9 // Author : Zhenyan Zhu 10 10 // Created On : Sat Aug 6 16:29:18 2022 11 // Last Modified By : Kyoung Seo12 // Last Modified On : Mon Jan 27 20:35:00 202511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Sep 4 15:37:51 2023 13 13 // Update Count : 1 14 14 // … … 392 392 393 393 pthread_t pthread_self(void) libcfa_public __THROW { 394 return (pthread_t)((uintptr_t)active_thread() );394 return (pthread_t)((uintptr_t)active_thread() - (sizeof(cfaPthread) - sizeof(thread$))); 395 395 } 396 396 -
src/Concurrency/Keywords.cpp
r49510db ra950021 10 10 // Created On : Tue Nov 16 9:53:00 2021 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jan 24 18:33:02202513 // Update Count : 1 412 // Last Modified On : Sun Jan 26 15:16:16 2025 13 // Update Count : 15 14 14 // 15 15 … … 534 534 auto mutDecl = ast::mutate( decl ); 535 535 // Insert at start of special aggregate structures => front of vector 536 mutDecl->members.insert( mutDecl->members.begin(), field ); 536 //mutDecl->members.insert( mutDecl->members.begin(), field ); 537 mutDecl->members.push_back( field ); 537 538 538 539 return {mutDecl, field}; -
tests/.expect/attributes.arm64.txt
r49510db ra950021 1 2 #pragma GCC diagnostic ignored "-Wattributes"3 ;4 1 signed int _X2laFi___1(void){ 5 2 __attribute__ ((unused)) signed int _X10_retval_lai_1; … … 8 5 } 9 6 10 {11 ((void)(_X10_retval_lai_1=1) /* ?{} */);12 }13 14 return _X10_retval_lai_1;15 7 } 16 8 struct __attribute__ ((unused)) __anonymous0 { … … 1167 1159 __attribute__ ((unused)) signed int _X2f1Fi___1(void){ 1168 1160 __attribute__ ((unused)) signed int _X10_retval_f1i_1; 1169 {1170 ((void)(_X10_retval_f1i_1=1) /* ?{} */);1171 }1172 1173 return _X10_retval_f1i_1;1174 1161 } 1175 1162 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1(void); 1176 1163 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(void){ 1177 1164 __attribute__ ((unused)) signed int **const _X10_retval_f2KPPi_1; 1178 {1179 ((void)((*((signed int ***)(&_X10_retval_f2KPPi_1)))=((void*)((unsigned long int )0))) /* ?{} */);1180 }1181 1182 return _X10_retval_f2KPPi_1;1183 1165 } 1184 1166 __attribute__ ((unused,used,unused)) signed int (*_X2f3FPA0i_i__1(signed int __anonymous_object0))[]; … … 1186 1168 __attribute__ ((unused,unused)) signed int (*_X2f5FPA0i_i__1(signed int _X1pi_1))[]{ 1187 1169 __attribute__ ((unused)) signed int (*_X10_retval_f5PA0i_1)[]; 1188 {1189 ((void)((void)_X1pi_1));1190 }1191 1192 {1193 ((void)(_X10_retval_f5PA0i_1=((void*)((unsigned long int )0))) /* ?{} */);1194 }1195 1196 return _X10_retval_f5PA0i_1;1197 1170 } 1198 1171 __attribute__ ((unused,unused)) signed int (*_X2f6FPA0i_i__1(signed int _X1pi_1))[]{ 1199 1172 __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[]; 1200 {1201 ((void)((void)_X1pi_1));1202 }1203 1204 {1205 ((void)(_X10_retval_f6PA0i_1=((void*)((unsigned long int )0))) /* ?{} */);1206 }1207 1208 return _X10_retval_f6PA0i_1;1209 1173 } 1210 1174 __attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1(void))(signed int __param_0); 1211 1175 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1(void))(signed int __param_0){ 1212 1176 __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0); 1213 {1214 ((void)(_X10_retval_f8Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */);1215 }1216 1217 return _X10_retval_f8Fi_i__1;1218 1177 } 1219 1178 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1(void))(signed int __param_0){ 1220 1179 __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0); 1221 {1222 ((void)(_X10_retval_f9Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */);1223 }1224 1225 return _X10_retval_f9Fi_i__1;1226 1180 } 1227 1181 __attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1(void))(signed int __param_0){ 1228 1182 __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0); 1229 { 1230 ((void)(_X11_retval_f10Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */); 1231 } 1232 1233 return _X11_retval_f10Fi_i__1; 1234 } 1235 void _X3vtrFv___1(void){ 1183 } 1184 signed int _X3vtrFi___1(void){ 1185 __attribute__ ((unused)) signed int _X11_retval_vtri_1; 1236 1186 __attribute__ ((unused,unused,used)) signed int _X2t1i_2; 1237 1187 __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t2PPi_2; … … 1242 1192 __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2(void); 1243 1193 } 1244 void _X4ipd1Fv_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1); 1245 void _X4ipd1Fv_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1){ 1246 } 1247 void _X4ipd2Fv_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1); 1248 void _X4ipd2Fv_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){ 1249 } 1250 void _X4ipd3Fv_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1); 1251 void _X4ipd3Fv_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){ 1252 } 1253 void _X4ipd4Fv_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)); 1254 void _X4ipd4Fv_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){ 1194 signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1); 1195 signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1){ 1196 __attribute__ ((unused)) signed int _X12_retval_ipd1i_1; 1197 } 1198 signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1); 1199 signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){ 1200 __attribute__ ((unused)) signed int _X12_retval_ipd2i_1; 1201 } 1202 signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1); 1203 signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){ 1204 __attribute__ ((unused)) signed int _X12_retval_ipd3i_1; 1205 } 1206 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)); 1207 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){ 1208 __attribute__ ((unused)) signed int _X12_retval_ipd4i_1; 1255 1209 } 1256 1210 signed int _X4tpr1Fi_i__1(__attribute__ ((unused,unused,unused)) signed int _X3Fooi_1); … … 1261 1215 signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)(void)); 1262 1216 signed int _X4tpr7Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object3)(signed int (*__param_0)(signed int __param_0))); 1263 void _X2adFv___1(void){ 1217 signed int _X2adFi___1(void){ 1218 __attribute__ ((unused)) signed int _X10_retval_adi_1; 1264 1219 __attribute__ ((used,unused)) signed int _X3ad1i_2; 1265 1220 __attribute__ ((unused,unused,unused)) signed int *_X3ad2Pi_2; … … 1364 1319 signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(__attribute__ ((unused)) signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(__attribute__ ((unused)) signed int __param_0)); 1365 1320 struct Vad { 1366 __attribute__ ((unused)) signed int _X1xi_1;1367 1321 __attribute__ ((unused)) signed int :4; 1368 1322 __attribute__ ((unused)) signed int :4; … … 1370 1324 }; 1371 1325 static inline void _X12_constructorFv_S3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1){ 1372 {1373 ((void)((*_X4_dstS3Vad_1)._X1xi_1) /* ?{} */);1374 }1375 1376 1326 } 1377 1327 static inline void _X12_constructorFv_S3VadS3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) struct Vad _X4_srcS3Vad_1){ 1378 {1379 ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X4_srcS3Vad_1._X1xi_1) /* ?{} */);1380 }1381 1382 1328 } 1383 1329 static inline void _X11_destructorFv_S3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1){ 1384 {1385 ((void)((*_X4_dstS3Vad_1)._X1xi_1) /* ^?{} */);1386 }1387 1388 1330 } 1389 1331 static inline struct Vad _X16_operator_assignFS3Vad_S3VadS3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) struct Vad _X4_srcS3Vad_1){ 1390 1332 __attribute__ ((unused)) struct Vad _X4_retS3Vad_1; 1391 1333 { 1392 ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X4_srcS3Vad_1._X1xi_1));1393 }1394 1395 {1396 1334 ((void)_X12_constructorFv_S3VadS3Vad_autogen___1((&_X4_retS3Vad_1), (*_X4_dstS3Vad_1))); 1397 1335 } 1398 1336 1399 1337 return _X4_retS3Vad_1; 1400 }1401 static inline void _X12_constructorFv_S3Vadi_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) signed int _X1xi_1){1402 {1403 ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X1xi_1) /* ?{} */);1404 }1405 1406 1338 } 1407 1339 __attribute__ (( noreturn )) void _X4fredFv___1(void){ … … 1424 1356 } 1425 1357 1426 {1427 ((void)abort());1428 }1429 1430 1358 } 1431 1359 __attribute__ ((noreturn)) void _X4maryFv___1(void){ 1432 struct __attribute__ ((aligned( 16))) S {1360 struct __attribute__ ((aligned(64))) S { 1433 1361 signed int _X1ii_2; 1434 1362 }; … … 1487 1415 } 1488 1416 1489 { 1490 ((void)abort()); 1491 } 1492 1493 } 1417 } -
tests/.expect/attributes.x64.txt
r49510db ra950021 1 2 #pragma GCC diagnostic ignored "-Wattributes"3 ;4 1 signed int _X2laFi___1(void){ 5 2 __attribute__ ((unused)) signed int _X10_retval_lai_1; … … 8 5 } 9 6 10 {11 ((void)(_X10_retval_lai_1=1) /* ?{} */);12 }13 14 return _X10_retval_lai_1;15 7 } 16 8 struct __attribute__ ((unused)) __anonymous0 { … … 1167 1159 __attribute__ ((unused)) signed int _X2f1Fi___1(void){ 1168 1160 __attribute__ ((unused)) signed int _X10_retval_f1i_1; 1169 {1170 ((void)(_X10_retval_f1i_1=1) /* ?{} */);1171 }1172 1173 return _X10_retval_f1i_1;1174 1161 } 1175 1162 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1(void); 1176 1163 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(void){ 1177 1164 __attribute__ ((unused)) signed int **const _X10_retval_f2KPPi_1; 1178 {1179 ((void)((*((signed int ***)(&_X10_retval_f2KPPi_1)))=((void*)((unsigned long int )0))) /* ?{} */);1180 }1181 1182 return _X10_retval_f2KPPi_1;1183 1165 } 1184 1166 __attribute__ ((unused,used,unused)) signed int (*_X2f3FPA0i_i__1(signed int __anonymous_object0))[]; … … 1186 1168 __attribute__ ((unused,unused)) signed int (*_X2f5FPA0i_i__1(signed int _X1pi_1))[]{ 1187 1169 __attribute__ ((unused)) signed int (*_X10_retval_f5PA0i_1)[]; 1188 {1189 ((void)((void)_X1pi_1));1190 }1191 1192 {1193 ((void)(_X10_retval_f5PA0i_1=((void*)((unsigned long int )0))) /* ?{} */);1194 }1195 1196 return _X10_retval_f5PA0i_1;1197 1170 } 1198 1171 __attribute__ ((unused,unused)) signed int (*_X2f6FPA0i_i__1(signed int _X1pi_1))[]{ 1199 1172 __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[]; 1200 {1201 ((void)((void)_X1pi_1));1202 }1203 1204 {1205 ((void)(_X10_retval_f6PA0i_1=((void*)((unsigned long int )0))) /* ?{} */);1206 }1207 1208 return _X10_retval_f6PA0i_1;1209 1173 } 1210 1174 __attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1(void))(signed int __param_0); 1211 1175 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1(void))(signed int __param_0){ 1212 1176 __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0); 1213 {1214 ((void)(_X10_retval_f8Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */);1215 }1216 1217 return _X10_retval_f8Fi_i__1;1218 1177 } 1219 1178 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1(void))(signed int __param_0){ 1220 1179 __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0); 1221 {1222 ((void)(_X10_retval_f9Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */);1223 }1224 1225 return _X10_retval_f9Fi_i__1;1226 1180 } 1227 1181 __attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1(void))(signed int __param_0){ 1228 1182 __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0); 1229 { 1230 ((void)(_X11_retval_f10Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */); 1231 } 1232 1233 return _X11_retval_f10Fi_i__1; 1234 } 1235 void _X3vtrFv___1(void){ 1183 } 1184 signed int _X3vtrFi___1(void){ 1185 __attribute__ ((unused)) signed int _X11_retval_vtri_1; 1236 1186 __attribute__ ((unused,unused,used)) signed int _X2t1i_2; 1237 1187 __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t2PPi_2; … … 1242 1192 __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2(void); 1243 1193 } 1244 void _X4ipd1Fv_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1); 1245 void _X4ipd1Fv_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1){ 1246 } 1247 void _X4ipd2Fv_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1); 1248 void _X4ipd2Fv_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){ 1249 } 1250 void _X4ipd3Fv_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1); 1251 void _X4ipd3Fv_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){ 1252 } 1253 void _X4ipd4Fv_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)); 1254 void _X4ipd4Fv_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){ 1194 signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1); 1195 signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1){ 1196 __attribute__ ((unused)) signed int _X12_retval_ipd1i_1; 1197 } 1198 signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1); 1199 signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){ 1200 __attribute__ ((unused)) signed int _X12_retval_ipd2i_1; 1201 } 1202 signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1); 1203 signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){ 1204 __attribute__ ((unused)) signed int _X12_retval_ipd3i_1; 1205 } 1206 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)); 1207 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){ 1208 __attribute__ ((unused)) signed int _X12_retval_ipd4i_1; 1255 1209 } 1256 1210 signed int _X4tpr1Fi_i__1(__attribute__ ((unused,unused,unused)) signed int _X3Fooi_1); … … 1261 1215 signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)(void)); 1262 1216 signed int _X4tpr7Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object3)(signed int (*__param_0)(signed int __param_0))); 1263 void _X2adFv___1(void){ 1217 signed int _X2adFi___1(void){ 1218 __attribute__ ((unused)) signed int _X10_retval_adi_1; 1264 1219 __attribute__ ((used,unused)) signed int _X3ad1i_2; 1265 1220 __attribute__ ((unused,unused,unused)) signed int *_X3ad2Pi_2; … … 1364 1319 signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(__attribute__ ((unused)) signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(__attribute__ ((unused)) signed int __param_0)); 1365 1320 struct Vad { 1366 __attribute__ ((unused)) signed int _X1xi_1;1367 1321 __attribute__ ((unused)) signed int :4; 1368 1322 __attribute__ ((unused)) signed int :4; … … 1370 1324 }; 1371 1325 static inline void _X12_constructorFv_S3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1){ 1372 {1373 ((void)((*_X4_dstS3Vad_1)._X1xi_1) /* ?{} */);1374 }1375 1376 1326 } 1377 1327 static inline void _X12_constructorFv_S3VadS3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) struct Vad _X4_srcS3Vad_1){ 1378 {1379 ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X4_srcS3Vad_1._X1xi_1) /* ?{} */);1380 }1381 1382 1328 } 1383 1329 static inline void _X11_destructorFv_S3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1){ 1384 {1385 ((void)((*_X4_dstS3Vad_1)._X1xi_1) /* ^?{} */);1386 }1387 1388 1330 } 1389 1331 static inline struct Vad _X16_operator_assignFS3Vad_S3VadS3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) struct Vad _X4_srcS3Vad_1){ 1390 1332 __attribute__ ((unused)) struct Vad _X4_retS3Vad_1; 1391 1333 { 1392 ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X4_srcS3Vad_1._X1xi_1));1393 }1394 1395 {1396 1334 ((void)_X12_constructorFv_S3VadS3Vad_autogen___1((&_X4_retS3Vad_1), (*_X4_dstS3Vad_1))); 1397 1335 } 1398 1336 1399 1337 return _X4_retS3Vad_1; 1400 }1401 static inline void _X12_constructorFv_S3Vadi_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) signed int _X1xi_1){1402 {1403 ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X1xi_1) /* ?{} */);1404 }1405 1406 1338 } 1407 1339 __attribute__ (( noreturn )) void _X4fredFv___1(void){ … … 1424 1356 } 1425 1357 1426 {1427 ((void)abort());1428 }1429 1430 1358 } 1431 1359 __attribute__ ((noreturn)) void _X4maryFv___1(void){ 1432 struct __attribute__ ((aligned( 16))) S {1360 struct __attribute__ ((aligned(64))) S { 1433 1361 signed int _X1ii_2; 1434 1362 }; … … 1487 1415 } 1488 1416 1489 { 1490 ((void)abort()); 1491 } 1492 1493 } 1417 } -
tests/.expect/attributes.x86.txt
r49510db ra950021 1 2 #pragma GCC diagnostic ignored "-Wattributes"3 ;4 1 signed int _X2laFi___1(void){ 5 2 __attribute__ ((unused)) signed int _X10_retval_lai_1; … … 8 5 } 9 6 10 {11 ((void)(_X10_retval_lai_1=1) /* ?{} */);12 }13 14 return _X10_retval_lai_1;15 7 } 16 8 struct __attribute__ ((unused)) __anonymous0 { … … 1167 1159 __attribute__ ((unused)) signed int _X2f1Fi___1(void){ 1168 1160 __attribute__ ((unused)) signed int _X10_retval_f1i_1; 1169 {1170 ((void)(_X10_retval_f1i_1=1) /* ?{} */);1171 }1172 1173 return _X10_retval_f1i_1;1174 1161 } 1175 1162 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1(void); 1176 1163 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(void){ 1177 1164 __attribute__ ((unused)) signed int **const _X10_retval_f2KPPi_1; 1178 {1179 ((void)((*((signed int ***)(&_X10_retval_f2KPPi_1)))=((void*)((unsigned long int )0))) /* ?{} */);1180 }1181 1182 return _X10_retval_f2KPPi_1;1183 1165 } 1184 1166 __attribute__ ((unused,used,unused)) signed int (*_X2f3FPA0i_i__1(signed int __anonymous_object0))[]; … … 1186 1168 __attribute__ ((unused,unused)) signed int (*_X2f5FPA0i_i__1(signed int _X1pi_1))[]{ 1187 1169 __attribute__ ((unused)) signed int (*_X10_retval_f5PA0i_1)[]; 1188 {1189 ((void)((void)_X1pi_1));1190 }1191 1192 {1193 ((void)(_X10_retval_f5PA0i_1=((void*)((unsigned long int )0))) /* ?{} */);1194 }1195 1196 return _X10_retval_f5PA0i_1;1197 1170 } 1198 1171 __attribute__ ((unused,unused)) signed int (*_X2f6FPA0i_i__1(signed int _X1pi_1))[]{ 1199 1172 __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[]; 1200 {1201 ((void)((void)_X1pi_1));1202 }1203 1204 {1205 ((void)(_X10_retval_f6PA0i_1=((void*)((unsigned long int )0))) /* ?{} */);1206 }1207 1208 return _X10_retval_f6PA0i_1;1209 1173 } 1210 1174 __attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1(void))(signed int __param_0); 1211 1175 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1(void))(signed int __param_0){ 1212 1176 __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0); 1213 {1214 ((void)(_X10_retval_f8Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */);1215 }1216 1217 return _X10_retval_f8Fi_i__1;1218 1177 } 1219 1178 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1(void))(signed int __param_0){ 1220 1179 __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0); 1221 {1222 ((void)(_X10_retval_f9Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */);1223 }1224 1225 return _X10_retval_f9Fi_i__1;1226 1180 } 1227 1181 __attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1(void))(signed int __param_0){ 1228 1182 __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0); 1229 { 1230 ((void)(_X11_retval_f10Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */); 1231 } 1232 1233 return _X11_retval_f10Fi_i__1; 1234 } 1235 void _X3vtrFv___1(void){ 1183 } 1184 signed int _X3vtrFi___1(void){ 1185 __attribute__ ((unused)) signed int _X11_retval_vtri_1; 1236 1186 __attribute__ ((unused,unused,used)) signed int _X2t1i_2; 1237 1187 __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t2PPi_2; … … 1242 1192 __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2(void); 1243 1193 } 1244 void _X4ipd1Fv_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1); 1245 void _X4ipd1Fv_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1){ 1246 } 1247 void _X4ipd2Fv_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1); 1248 void _X4ipd2Fv_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){ 1249 } 1250 void _X4ipd3Fv_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1); 1251 void _X4ipd3Fv_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){ 1252 } 1253 void _X4ipd4Fv_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)); 1254 void _X4ipd4Fv_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){ 1194 signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1); 1195 signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1){ 1196 __attribute__ ((unused)) signed int _X12_retval_ipd1i_1; 1197 } 1198 signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1); 1199 signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){ 1200 __attribute__ ((unused)) signed int _X12_retval_ipd2i_1; 1201 } 1202 signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1); 1203 signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){ 1204 __attribute__ ((unused)) signed int _X12_retval_ipd3i_1; 1205 } 1206 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)); 1207 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){ 1208 __attribute__ ((unused)) signed int _X12_retval_ipd4i_1; 1255 1209 } 1256 1210 signed int _X4tpr1Fi_i__1(__attribute__ ((unused,unused,unused)) signed int _X3Fooi_1); … … 1261 1215 signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)(void)); 1262 1216 signed int _X4tpr7Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object3)(signed int (*__param_0)(signed int __param_0))); 1263 void _X2adFv___1(void){ 1217 signed int _X2adFi___1(void){ 1218 __attribute__ ((unused)) signed int _X10_retval_adi_1; 1264 1219 __attribute__ ((used,unused)) signed int _X3ad1i_2; 1265 1220 __attribute__ ((unused,unused,unused)) signed int *_X3ad2Pi_2; … … 1364 1319 signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(__attribute__ ((unused)) signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(__attribute__ ((unused)) signed int __param_0)); 1365 1320 struct Vad { 1366 __attribute__ ((unused)) signed int _X1xi_1;1367 1321 __attribute__ ((unused)) signed int :4; 1368 1322 __attribute__ ((unused)) signed int :4; … … 1370 1324 }; 1371 1325 static inline void _X12_constructorFv_S3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1){ 1372 {1373 ((void)((*_X4_dstS3Vad_1)._X1xi_1) /* ?{} */);1374 }1375 1376 1326 } 1377 1327 static inline void _X12_constructorFv_S3VadS3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) struct Vad _X4_srcS3Vad_1){ 1378 {1379 ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X4_srcS3Vad_1._X1xi_1) /* ?{} */);1380 }1381 1382 1328 } 1383 1329 static inline void _X11_destructorFv_S3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1){ 1384 {1385 ((void)((*_X4_dstS3Vad_1)._X1xi_1) /* ^?{} */);1386 }1387 1388 1330 } 1389 1331 static inline struct Vad _X16_operator_assignFS3Vad_S3VadS3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) struct Vad _X4_srcS3Vad_1){ 1390 1332 __attribute__ ((unused)) struct Vad _X4_retS3Vad_1; 1391 1333 { 1392 ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X4_srcS3Vad_1._X1xi_1));1393 }1394 1395 {1396 1334 ((void)_X12_constructorFv_S3VadS3Vad_autogen___1((&_X4_retS3Vad_1), (*_X4_dstS3Vad_1))); 1397 1335 } 1398 1336 1399 1337 return _X4_retS3Vad_1; 1400 }1401 static inline void _X12_constructorFv_S3Vadi_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) signed int _X1xi_1){1402 {1403 ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X1xi_1) /* ?{} */);1404 }1405 1406 1338 } 1407 1339 __attribute__ (( noreturn )) void _X4fredFv___1(void){ … … 1424 1356 } 1425 1357 1426 {1427 ((void)abort());1428 }1429 1430 1358 } 1431 1359 __attribute__ ((noreturn)) void _X4maryFv___1(void){ 1432 struct __attribute__ ((aligned( 16))) S {1360 struct __attribute__ ((aligned(64))) S { 1433 1361 signed int _X1ii_2; 1434 1362 }; … … 1487 1415 } 1488 1416 1489 { 1490 ((void)abort()); 1491 } 1492 1493 } 1417 } -
tests/Makefile.am
r49510db ra950021 61 61 # Tests that need investigation from the CFA team about why they require lax wflags. Goal is to eliminate this list. 62 62 WFLGAS_OPT_LAX_TO_INVESTIGATE = \ 63 attributes \ 64 collections/queue \ 65 collections/sequence \ 66 collections/stack \ 63 67 collections/vector-demo \ 64 68 concurrency/actors/dynamic \ … … 93 97 concurrency/waituntil/repeat_close \ 94 98 concurrency/waituntil/timeout \ 99 configs/usage \ 100 ctrl-flow/labelledExit \ 101 ctrl-flow/loop_else \ 95 102 designations \ 96 103 exceptions/cardgame \ -
tests/attributes.cfa
r49510db ra950021 1 // 1 // 2 2 // Cforall Version 1.0.0 Copyright (C) 2017 University of Waterloo 3 3 // 4 4 // The contents of this file are covered under the licence agreement in the 5 5 // file "LICENCE" distributed with Cforall. 6 // 7 // attributes.cfa -- 8 // 6 // 7 // attributes.cfa -- 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Mon Feb 6 16:07:02 2017 … … 12 12 // Last Modified On : Fri Dec 20 15:32:21 2024 13 13 // Update Count : 53 14 // 14 // 15 15 16 #pragma GCC diagnostic ignored "-Wattributes"17 16 18 17 // label attribute 19 18 int la() { 20 19 L: __attribute__(( unused )) 1; 21 return 1;22 20 } 23 21 … … 66 64 // function_declarator 67 65 __attribute__(( unused )) int f1() __attribute__(( used )); 68 __attribute__(( unused )) int f1() { return 1;}66 __attribute__(( unused )) int f1() {} 69 67 __attribute__(( unused )) int * __attribute__(( unused )) * const __attribute__(( unused )) f2() __attribute__(( used )); 70 __attribute__(( unused )) int * __attribute__(( unused )) * const __attribute__(( unused )) f2() { return 0p;}68 __attribute__(( unused )) int * __attribute__(( unused )) * const __attribute__(( unused )) f2() {} 71 69 __attribute__(( unused )) int (* __attribute__(( unused )) f3(int))[] __attribute__(( used )); 72 70 __attribute__(( unused )) int ( __attribute__(( unused )) * __attribute__(( unused )) f4(int))[] __attribute__(( used )); 73 __attribute__(( unused )) int (* __attribute__(( unused )) f5(int p))[] { (void)p; return 0p;}74 __attribute__(( unused )) int ( __attribute__(( unused )) * (f6)(int p))[] { (void)p; return 0p;}71 __attribute__(( unused )) int (* __attribute__(( unused )) f5(int p))[] {} 72 __attribute__(( unused )) int ( __attribute__(( unused )) * (f6)(int p))[] {} 75 73 __attribute__(( unused )) int (* __attribute__(( unused )) f7())(int) __attribute__(( used )); 76 __attribute__(( unused )) int (* __attribute__(( unused )) f8())(int) { return 0p;}77 __attribute__(( unused )) int ( __attribute__(( unused )) * f9())(int) { return 0p;}78 __attribute__(( unused )) int ( __attribute__(( unused )) * (f10)())(int) { return 0p;}74 __attribute__(( unused )) int (* __attribute__(( unused )) f8())(int) {} 75 __attribute__(( unused )) int ( __attribute__(( unused )) * f9())(int) {} 76 __attribute__(( unused )) int ( __attribute__(( unused )) * (f10)())(int) {} 79 77 80 78 81 79 // variable_type_redeclarator 82 80 typedef int t1, t2, t3, t4, t5, t6, t7, t8; 83 voidvtr() {81 int vtr() { 84 82 // redefine typedef name in new scope 85 83 __attribute__(( unused )) int __attribute__(( unused )) t1 __attribute__(( used )); … … 94 92 95 93 // identifier_parameter_declarator 96 voidipd1( __attribute__(( unused )) int __attribute__(( unused )) p __attribute__(( unused )),94 int ipd1( __attribute__(( unused )) int __attribute__(( unused )) p __attribute__(( unused )), 97 95 __attribute__(( unused )) int __attribute__(( unused )) q __attribute__(( unused )) ); 98 voidipd1( __attribute__(( unused )) int __attribute__(( unused )) p __attribute__(( unused )),96 int ipd1( __attribute__(( unused )) int __attribute__(( unused )) p __attribute__(( unused )), 99 97 __attribute__(( unused )) int __attribute__(( unused )) q __attribute__(( unused )) ) {} 100 voidipd2( __attribute__(( unused )) int __attribute__(( unused )) * __attribute__(( unused )) p __attribute__(( unused )),98 int ipd2( __attribute__(( unused )) int __attribute__(( unused )) * __attribute__(( unused )) p __attribute__(( unused )), 101 99 __attribute__(( unused )) int __attribute__(( unused )) (* (q)) __attribute__(( unused )) ); 102 voidipd2( __attribute__(( unused )) int __attribute__(( unused )) * __attribute__(( unused )) p __attribute__(( unused )),100 int ipd2( __attribute__(( unused )) int __attribute__(( unused )) * __attribute__(( unused )) p __attribute__(( unused )), 103 101 __attribute__(( unused )) int __attribute__(( unused )) (* (q)) __attribute__(( unused )) ) {} 104 voidipd3( __attribute__(( unused )) int __attribute__(( unused )) p[] __attribute__(( unused )),102 int ipd3( __attribute__(( unused )) int __attribute__(( unused )) p[] __attribute__(( unused )), 105 103 __attribute__(( unused )) int __attribute__(( unused )) ((q)[]) __attribute__(( unused )) ); 106 voidipd3( __attribute__(( unused )) int __attribute__(( unused )) p[] __attribute__(( unused )),104 int ipd3( __attribute__(( unused )) int __attribute__(( unused )) p[] __attribute__(( unused )), 107 105 __attribute__(( unused )) int __attribute__(( unused )) ((q)[]) __attribute__(( unused )) ) {} 108 voidipd4( __attribute__(( unused )) int __attribute__(( unused )) p() __attribute__(( unused )),106 int ipd4( __attribute__(( unused )) int __attribute__(( unused )) p() __attribute__(( unused )), 109 107 __attribute__(( unused )) int __attribute__(( unused )) ((q)()) __attribute__(( unused )) ); 110 voidipd4( __attribute__(( unused )) int __attribute__(( unused )) p() __attribute__(( unused )),108 int ipd4( __attribute__(( unused )) int __attribute__(( unused )) p() __attribute__(( unused )), 111 109 __attribute__(( unused )) int __attribute__(( unused )) ((q)()) __attribute__(( unused )) ) {} 112 110 … … 124 122 125 123 // abstract_declarator 126 voidad() {124 int ad() { 127 125 typeof( int __attribute__(( used )) ) ad1 __attribute__(( unused )); 128 126 typeof( int __attribute__(( unused )) * __attribute__(( unused )) ) ad2 __attribute__(( unused )); … … 159 157 // variable_abstract_declarator 160 158 struct Vad { 161 int __attribute__(( unused )) x;159 int __attribute__(( unused )); 162 160 int __attribute__(( unused )) :4; 163 161 int __attribute__(( unused )) :4, __attribute__(( unused )) :6; … … 176 174 3; 177 175 } 178 abort();179 176 } 180 177 181 178 @[ noreturn ] void mary() { 182 @[aligned( 16)] struct S { int i; };179 @[aligned(64)] struct S { int i; }; 183 180 int @[unused] i; 184 181 switch ( 3 ) { … … 190 187 3; 191 188 } 192 abort();193 189 } 194 190 -
tests/collections/queue.cfa
r49510db ra950021 28 28 } 29 29 sout | "empty" | nl; 30 30 31 31 for ( i; 10 ) { 32 32 add( fred, *new( 2 * i ) ); … … 48 48 } 49 49 sout | nl; 50 50 51 51 for ( i; 10 ) { 52 52 add( fred, *new( 2 * i + 1 ) ); … … 133 133 int j; 134 134 }; 135 __attribute__((unused))136 135 void ?{}( Mary & mary ) { abort(); } 137 136 void ?{}( Mary & mary, int p ) with( mary ) { … … 151 150 } 152 151 sout | "empty" | nl; 153 152 154 153 for ( i; 10 ) { 155 154 add( mary, *new( 2 * i ) ); … … 162 161 } 163 162 sout | nl; 164 163 165 164 for ( i; 9 ) { 166 165 delete( &drop( mary ) ); … … 171 170 } 172 171 sout | nl; 173 172 174 173 for ( i; 10 ) { 175 174 add( mary, *new( 2 * i + 1 ) ); -
tests/collections/sequence.cfa
r49510db ra950021 31 31 } 32 32 sout | "empty" | nl; 33 33 34 34 for ( i; 10 ) { 35 35 add( fred, *new( 2 * i ) ); … … 51 51 } 52 52 sout | nl; 53 53 54 54 for ( i; 10 ) { 55 55 addTail( fred, *new( 2 * i + 1 ) ); … … 156 156 int j; 157 157 }; 158 __attribute__((unused))159 158 void ?{}( Mary & mary ) { abort(); } 160 159 void ?{}( Mary & mary, int p ) with( mary ) { … … 177 176 } 178 177 sout | "empty" | nl; 179 178 180 179 for ( i; 10 ) { 181 180 add( mary, *new( 2 * i ) ); … … 188 187 } 189 188 sout | nl; 190 189 191 190 for ( i; 9 ) { 192 191 delete( &dropHead( mary ) ); … … 197 196 } 198 197 sout | nl; 199 198 200 199 for ( i; 10 ) { 201 200 addTail( mary, *new( 2 * i + 1 ) ); -
tests/collections/stack.cfa
r49510db ra950021 28 28 } 29 29 sout | "empty" | nl; 30 30 31 31 for ( i; 10 ) { 32 32 push( fred, *new( 2 * i ) ); … … 39 39 40 40 sout | head( fred ).i | nl; 41 41 42 42 for ( i; 9 ) { 43 43 delete( &pop( fred ) ); … … 48 48 } 49 49 sout | nl; 50 50 51 51 for ( i; 10 ) { 52 52 push( fred, *new( 2 * i + 1 ) ); … … 67 67 int j; 68 68 }; 69 __attribute__((unused))70 69 void ?{}( Mary & mary ) { abort(); } 71 70 void ?{}( Mary & mary, int p ) with( mary ) { … … 86 85 } 87 86 sout | "empty" | nl; 88 87 89 88 for ( i; 10 ) { 90 89 push( mary, *new( 2 * i ) ); … … 95 94 } 96 95 sout | nl; 97 96 98 97 for ( i; 9 ) { 99 98 delete( &pop( mary ) ); … … 104 103 } 105 104 sout | nl; 106 105 107 106 for ( i; 10 ) { 108 107 push( mary, *new( 2 * i + 1 ) ); -
tests/collections/vector-demo.cfa
r49510db ra950021 96 96 #endif 97 97 98 // forbid calling a function that returns permit by value99 #ifdef TRY_RETURN_PERMIT_BYVAL_1100 98 // can declare function that returns permit (wish to forbid) 101 99 vector_permit(float) g( vector( float ) & theVec ) { … … 103 101 } 104 102 103 // forbid calling a function that returns permit by value 104 #ifdef TRY_RETURN_PERMIT_BYVAL_1 105 105 vector_permit(float) ofG = g( v ); // Unique best alternative includes deleted identifier 106 106 #endif 107 107 108 108 // allow declaration of permit, populating from exit 109 109 vector_exit(float) h( vector( float ) & theVec ) { -
tests/configs/usage.cfa
r49510db ra950021 108 108 109 109 // no used 110 static int true_main( const char *, const char * []) { return 0; } 111 __attribute__((unused)) static void check_main(const char *); 110 static int true_main( const char * path, const char * env[]) { return 0; } -
tests/ctrl-flow/labelledExit.cfa
r49510db ra950021 1 // 1 // 2 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo 3 3 // 4 4 // The contents of this file are covered under the licence agreement in the 5 5 // file "LICENCE" distributed with Cforall. 6 // 7 // labelledExit.cfa -- 8 // 6 // 7 // labelledExit.cfa -- 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Wed Aug 10 07:29:39 2016 … … 12 12 // Last Modified On : Fri Jan 17 14:18:15 2025 13 13 // Update Count : 14 14 // 14 // 15 15 16 16 int foo() { 17 int i = 0;18 int x = 0, y = 0;17 int i; 18 int x, y; 19 19 20 // block, labelled exits 20 x = 0; y = 0; 21 22 // block, labelled exits 21 23 22 24 Block: { 23 if ( x == y ) {24 for ( ; i < y; ) {25 y += 1;26 if ( y < 10 ) break Block;27 }28 }29 }25 if ( x == y ) { 26 for ( ; i < y; ) { 27 y += 1; 28 if ( y < 10 ) break Block; 29 } 30 } 31 } 30 32 31 // loops, labelled exits33 // loops, labelled exits 32 34 33 w1: while ( y == 10 ) break w1;35 w1: while ( y == 10 ); 34 36 35 37 w2: while ( x < 10 ) { 36 while (y < 5 ) {37 if ( y == 3 ) break w2;38 }39 x += 1;40 }38 while (y < 5 ) { 39 if ( y == 3 ) break w2; 40 } 41 x += 1; 42 } 41 43 42 44 A: for ( i = 0; i < 10; i += 1 ) { 43 B: for ( i = 0; i < 10; i += 1 ) {44 C: for ( i = 0; i < 10; i += 1 ) {45 goto A;46 goto B;47 goto C;48 continue A;49 continue B;50 continue C;51 continue;52 break A;53 break B;54 break C;55 break;56 }57 }58 }45 B: for ( i = 0; i < 10; i += 1 ) { 46 C: for ( i = 0; i < 10; i += 1 ) { 47 goto A; 48 goto B; 49 goto C; 50 continue A; 51 continue B; 52 continue C; 53 continue; 54 break A; 55 break B; 56 break C; 57 break; 58 } 59 } 60 } 59 61 60 62 D: for () { 61 break D;62 continue D;63 }63 break D; 64 continue D; 65 } 64 66 65 67 Z : i += 1; 66 goto Z;68 goto Z; 67 69 X: Y: for () { 68 i += 1;69 if ( i > 5 ) continue X;70 if ( i < 5 ) break X;71 if ( i < 5 ) break Y;72 break;73 }70 i += 1; 71 if ( i > 5 ) continue X; 72 if ( i < 5 ) break X; 73 if ( i < 5 ) break Y; 74 break; 75 } 74 76 XX: for () { 75 YY: for () {76 ZZ: for () {77 i += 1;78 if ( i > 5 ) continue XX;79 if ( i < 5 ) continue YY;80 if ( i < 5 ) continue ZZ;81 if ( i > 5 ) break XX;82 if ( i < 5 ) break YY;83 if ( i < 5 ) break ZZ;84 break;85 }86 }87 }77 YY: for () { 78 ZZ: for () { 79 i += 1; 80 if ( i > 5 ) continue XX; 81 if ( i < 5 ) continue YY; 82 if ( i < 5 ) continue ZZ; 83 if ( i > 5 ) break XX; 84 if ( i < 5 ) break YY; 85 if ( i < 5 ) break ZZ; 86 break; 87 } 88 } 89 } 88 90 89 for () ;90 for ( int i = 0 ;; ) ++i;91 for ( ; i < 0; ) ;92 for ( ; ; i += 1 ) ;91 for () ; 92 for ( int i = 0 ;; ) ; 93 for ( ; i < 0; ) ; 94 for ( ; ; i += 1 ) ; 93 95 L0: L1: L2: L3: L4: L5: L6: L7: L8: L9: 94 96 L10: L11: L12: L13: L14: L15: L16: L17: L18: L19: 95 97 L20: L21: L22: L23: L24: L25: L26: L27: L28: L29: 96 98 L31: L32: L33: L34: 97 for () { 98 break L0; 99 break L1; break L2; break L3; break L4; break L5; break L6; 100 break L7; break L8; break L9; break L10; break L11; break L12; 101 break L13; break L14; break L15; break L16; break L17; break L18; 102 break L19; break L20; break L21; break L22; break L23; break L24; 103 break L25; break L26; break L27; break L28; break L29; break L31; 104 break L32; break L33; break L34; 105 } 99 for () { 100 break L0; 101 } 106 102 107 // switch/choose, labelled exits103 // switch/choose, labelled exits 108 104 109 105 Switch: switch ( i ) { 110 default: 111 i += 1; 112 fallthrough; 113 case 0: 114 i += 1; 115 break Switch; 116 case 1: 117 switch ( i ) { 118 case 0: 119 break Switch; 120 default: 121 ; break; 122 } 123 } 106 default: 107 i += 1; 108 case 0: 109 i += 1; 110 break Switch; 111 case 1: 112 switch ( i ) { 113 case 0: 114 break Switch; 115 default: 116 ; break; 117 } 118 } 124 119 125 120 Choose: choose ( i ) { 126 default:127 i += 1;128 case 0:129 i += 1;130 break Choose;131 case 1:132 choose ( i ) {133 case 0:134 break;135 default:136 break Choose;137 }138 fallthrough;139 case 2:140 i += 1;141 }121 default: 122 i += 1; 123 case 0: 124 i += 1; 125 break Choose; 126 case 1: 127 choose ( i ) { 128 case 0: 129 break; 130 default: 131 break Choose; 132 } 133 fallthrough; 134 case 2: 135 i += 1; 136 } 142 137 143 // all nested control options, labelled exits138 // all nested control options, labelled exits 144 139 145 140 Comp: { … … 153 148 break Try; 154 149 break Comp; 155 break For; continue For;156 break While; continue While;157 break Do; continue Do;158 break If;159 break Switch2;150 break For; continue For; 151 break While; continue While; 152 break Do; continue Do; 153 break If; 154 break Switch2; 160 155 } // switch 161 156 } // if … … 183 178 } 184 179 185 int main( ) {180 int main( int argc, char const *argv[] ) { 186 181 printf("done\n"); 187 182 } -
tests/ctrl-flow/loop_else.cfa
r49510db ra950021 23 23 24 24 sout | nlOff; // turn off auto newline 25 while ( true ) { sout | "empty"; break; } else { sout | "else"; }sout | nl;26 do { sout | "empty"; break; } while ( true ) else { sout | "else"; }sout | nl;27 for ( ; true ; ) { sout | "empty"; break; } else { sout | "else"; }sout | nl | nl;25 while () { sout | "empty"; break; } else { sout | "else"; } sout | nl; 26 do { sout | "empty"; break; } while () else { sout | "else"; } sout | nl; 27 for () { sout | "empty"; break; } else { sout | "else"; } sout | nl | nl; 28 28 29 29 do { sout | "false"; } while (false) else { sout | "else"; } sout | nl | nl; -
tests/designations.cfa
r49510db ra950021 10 10 // Created On : Thu Jun 29 15:26:36 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jan 28 21:49:50 2025 13 // Update Count : 82 14 // 12 // Last Modified On : Sun Oct 13 11:53:16 2024 13 // Update Count : 31 14 // 15 16 #include <fstream.hfa> 15 17 16 18 // Note: this test case has been crafted so that it compiles with both cfa and with gcc without any modifications. 17 #include <stdio.h>18 19 #ifdef __cforall 19 20 #define AT @ … … 22 23 #endif 23 24 24 #pragma GCC diagnostic ignored "-Wmissing-braces"25 #pragma GCC diagnostic ignored "-Woverride-init"26 #pragma GCC diagnostic ignored "-Wunused-variable"27 #pragma GCC diagnostic ignored "-Wmissing-field-initializers"28 29 30 25 const int indentAmt = 2; 31 26 void indent( int level ) { 32 printf( "%*s", level, "" );27 sout | wd( level, "" ) | nonl; 33 28 } 34 29 … … 40 35 void printA( struct A a, int level ) { 41 36 indent( level ); 42 printf( "(A){ %d %d %p }\n", a.x, a.y, a.ptr );37 sout | "(A){ " | a.x | a.y | a.ptr | " }"; 43 38 } 44 39 … … 49 44 void printB( struct B b, int level ) { 50 45 indent( level ); 51 printf( "(B){\n" );46 sout | "(B){"; 52 47 printA( b.a0, level+indentAmt ); 53 48 printA( b.a1, level+indentAmt ); 54 49 indent( level ); 55 printf( "}\n" );50 sout | "}"; 56 51 } 57 52 … … 63 58 void printC( struct C c, int level ) { 64 59 indent( level ); 65 printf( "(C){\n" );60 sout | "(C){"; 66 61 indent( level+indentAmt ); 67 printf( "(int[]{ %d %d %d }\n", c.arr[0], c.arr[1], c.arr[2] );62 sout | "(int[]{ " | c.arr[0] | c.arr[1] | c.arr[2] | " }"; 68 63 printB( c.b, level+indentAmt ); 69 64 indent( level ); 70 printf( "}\n" );65 sout | "}"; 71 66 } 72 67 … … 79 74 void printD( struct D d, int level ) { 80 75 indent( level); 81 printf( "(D){ %d }\n", d.x );76 sout | "(D){ " | d.x | "}"; 82 77 } 83 78 … … 101 96 } m; 102 97 }; 103 struct Fred s1 AT= { .m.j = { 3 }};98 struct Fred s1 AT= { .m.j = 3 }; 104 99 struct Fred s2 AT= { .i = { [2] = 2 } }; 105 100 … … 129 124 #endif 130 125 131 printf( "=====A=====\n" );126 sout | "=====A====="; 132 127 printA( y0, 0 ); 133 128 printA( y1, 0 ); 134 129 printA( y2, 0 ); 135 printf( "=====A=====\n\n" );130 sout | "=====A=====" | nl | nl; 136 131 137 132 // initialize only first element (z0.a.x), leaving everything else default-initialized (zero), no nested curly-braces … … 172 167 }; 173 168 174 printf( "=====B=====\n" );169 sout | "=====B====="; 175 170 printB( z0, 0 ); 176 171 printB( z1, 0 ); … … 179 174 printB( z5, 0 ); 180 175 printB( z6, 0 ); 181 printf( "=====B=====\n\n" );176 sout | "=====B=====" | nl | nl; 182 177 183 178 // TODO: what about extra things in a nested init? are empty structs skipped?? … … 190 185 }; 191 186 192 printf( "=====C=====\n" );187 sout | "=====C====="; 193 188 printC( c1, 0 ); 194 printf( "=====C=====\n\n" );189 sout | "=====C=====" | nl | nl; 195 190 196 191 #if ERROR … … 216 211 // array designation 217 212 int i[2] = { [1] = 3 }; 218 219 213 // allowed to have 'too many' initialized lists - essentially they are ignored. 220 214 int i1 = { 3 }; … … 247 241 }; 248 242 249 printf( "=====E=====\n" );243 sout | "=====E====="; 250 244 printA( e0.a, 0 ); 251 245 printA( e1.a, 0 ); 252 246 printA( e2.a, 0 ); 253 247 printB( e3.b, 0 ); 254 printf( "=====E=====\n\n" );248 sout | "=====E=====" | nl | nl; 255 249 256 250 // special case of initialization: char[] can be initialized with a string literal … … 260 254 const char c3[] = { 'a', 'b', 'c' }; 261 255 const char c4[][2] = { { 'a', 'b' }, { 'c', 'd'}, { 'c', 'd'} }; 262 const char ch = c4[0][0];263 256 264 257 // more cases … … 270 263 union foo { int i; double d; }; 271 264 union foo f = { .d = 4 }; 272 int v1 = 0, v2 = 0, v4 = 0;265 int v1, v2, v4; 273 266 int w[6] = { [1] = v1, v2, [4] = v4 }; 274 267 int whitespace[256] = { [' '] = 1, ['\t'] = 1, ['\v'] = 1, ['\f'] = 1, ['\n'] = 1, ['\r'] = 1 };
Note:
See TracChangeset
for help on using the changeset viewer.