| ... | ... | @@ -1358,4 +1358,58 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1358 | 1358 | \\ } |
| 1359 | 1359 | \\} |
| 1360 | 1360 | ); |
| 1361 | |
| 1362 | cases.add("correctly translate enum init values", |
| 1363 | \\enum EnumWithInits { |
| 1364 | \\ VAL01 = 0, |
| 1365 | \\ VAL02 = 1, |
| 1366 | \\ VAL03 = 2, |
| 1367 | \\ VAL04 = 3, |
| 1368 | \\ VAL05 = -1, |
| 1369 | \\ VAL06 = -2, |
| 1370 | \\ VAL07 = -3, |
| 1371 | \\ VAL08 = -4, |
| 1372 | \\ VAL09 = VAL02 + VAL08, |
| 1373 | \\ VAL10 = -1000012000, |
| 1374 | \\ VAL11 = -1000161000, |
| 1375 | \\ VAL12 = -1000174001, |
| 1376 | \\ VAL13 = VAL09, |
| 1377 | \\ VAL14 = VAL10, |
| 1378 | \\ VAL15 = VAL11, |
| 1379 | \\ VAL16 = VAL13, |
| 1380 | \\ VAL17 = (VAL16 - VAL10 + 1), |
| 1381 | \\ VAL18 = 0x1000000000000000L, |
| 1382 | \\ VAL19 = VAL18 + VAL18 + VAL18 - 1, |
| 1383 | \\ VAL20 = VAL19 + VAL19, |
| 1384 | \\ VAL21 = VAL20 + 0xFFFFFFFFFFFFFFFF, |
| 1385 | \\ VAL22 = 0xFFFFFFFFFFFFFFFF + 1, |
| 1386 | \\ VAL23 = 0xFFFFFFFFFFFFFFFF, |
| 1387 | \\}; |
| 1388 | , |
| 1389 | \\pub const enum_EnumWithInits = extern enum(c_longlong) { |
| 1390 | \\ VAL01 = 0, |
| 1391 | \\ VAL02 = 1, |
| 1392 | \\ VAL03 = 2, |
| 1393 | \\ VAL04 = 3, |
| 1394 | \\ VAL05 = -1, |
| 1395 | \\ VAL06 = -2, |
| 1396 | \\ VAL07 = -3, |
| 1397 | \\ VAL08 = -4, |
| 1398 | \\ VAL09 = -3, |
| 1399 | \\ VAL10 = -1000012000, |
| 1400 | \\ VAL11 = -1000161000, |
| 1401 | \\ VAL12 = -1000174001, |
| 1402 | \\ VAL13 = -3, |
| 1403 | \\ VAL14 = -1000012000, |
| 1404 | \\ VAL15 = -1000161000, |
| 1405 | \\ VAL16 = -3, |
| 1406 | \\ VAL17 = 1000011998, |
| 1407 | \\ VAL18 = 1152921504606846976, |
| 1408 | \\ VAL19 = 3458764513820540927, |
| 1409 | \\ VAL20 = 6917529027641081854, |
| 1410 | \\ VAL21 = 6917529027641081853, |
| 1411 | \\ VAL22 = 0, |
| 1412 | \\ VAL23 = -1, |
| 1413 | \\}; |
| 1414 | ); |
| 1361 | 1415 | } |