Commit 3e7cdd6
authored
Merge pull request #105 from jayrm/mangling
Name mangling on win target
#890: Fix Bad @n stdcall suffix for non-trivial byval type parameters with -gen gcc
Changes in this pull request are based on, and related to:
#828 32bit Integer/Long mangling reversed
By default, fbc's Long/ULong data type maps to c's int type, and since Integer/Uinteger are meant to be (consistently) 64bits in fbc-64bit, there is no other type that (by default) that can map to c's long int, which is 32bit even on Win64.
So, in Win64, to allow calling an external library that needs a 'long int' parameter there is the following, non-portable mangling modifier. It is ignored for all targets except Win64.
map fbc's 32bit 'LONG' type to Win64's 32bit 'long' type
type cxxlongint as long alias "long"File tree
7 files changed
+167
-121
lines changed- src/compiler
- tests
- cpp
- namespace/cpp
7 files changed
+167
-121
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| 13 | + | |
12 | 14 | | |
13 | 15 | | |
14 | 16 | | |
| |||
69 | 71 | | |
70 | 72 | | |
71 | 73 | | |
| 74 | + | |
72 | 75 | | |
73 | 76 | | |
74 | 77 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
223 | 223 | | |
224 | 224 | | |
225 | 225 | | |
226 | | - | |
227 | | - | |
| 226 | + | |
| 227 | + | |
228 | 228 | | |
229 | 229 | | |
230 | 230 | | |
| |||
505 | 505 | | |
506 | 506 | | |
507 | 507 | | |
508 | | - | |
509 | | - | |
510 | | - | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
511 | 513 | | |
512 | | - | |
| 514 | + | |
513 | 515 | | |
514 | 516 | | |
515 | 517 | | |
| |||
3159 | 3161 | | |
3160 | 3162 | | |
3161 | 3163 | | |
3162 | | - | |
3163 | | - | |
| 3164 | + | |
| 3165 | + | |
3164 | 3166 | | |
3165 | 3167 | | |
3166 | 3168 | | |
3167 | | - | |
| 3169 | + | |
3168 | 3170 | | |
3169 | 3171 | | |
3170 | | - | |
| 3172 | + | |
3171 | 3173 | | |
3172 | 3174 | | |
3173 | 3175 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
393 | 393 | | |
394 | 394 | | |
395 | 395 | | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
396 | 438 | | |
397 | 439 | | |
398 | 440 | | |
| |||
528 | 570 | | |
529 | 571 | | |
530 | 572 | | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
531 | 576 | | |
532 | 577 | | |
533 | 578 | | |
534 | 579 | | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
535 | 583 | | |
536 | 584 | | |
537 | 585 | | |
| |||
668 | 716 | | |
669 | 717 | | |
670 | 718 | | |
671 | | - | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
672 | 724 | | |
673 | 725 | | |
674 | 726 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
319 | 319 | | |
320 | 320 | | |
321 | 321 | | |
322 | | - | |
| 322 | + | |
323 | 323 | | |
324 | 324 | | |
325 | 325 | | |
| |||
336 | 336 | | |
337 | 337 | | |
338 | 338 | | |
339 | | - | |
340 | | - | |
341 | | - | |
342 | | - | |
343 | | - | |
344 | | - | |
345 | | - | |
346 | | - | |
347 | | - | |
348 | | - | |
349 | | - | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | | - | |
354 | | - | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | | - | |
359 | | - | |
360 | | - | |
361 | | - | |
362 | | - | |
363 | | - | |
364 | | - | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
365 | 372 | | |
366 | 373 | | |
367 | 374 | | |
368 | 375 | | |
369 | 376 | | |
| 377 | + | |
| 378 | + | |
370 | 379 | | |
371 | 380 | | |
372 | 381 | | |
373 | 382 | | |
374 | 383 | | |
375 | 384 | | |
376 | | - | |
377 | | - | |
378 | | - | |
379 | | - | |
380 | 385 | | |
| 386 | + | |
381 | 387 | | |
382 | | - | |
383 | | - | |
384 | | - | |
385 | | - | |
| 388 | + | |
| 389 | + | |
386 | 390 | | |
387 | 391 | | |
388 | 392 | | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
389 | 396 | | |
390 | 397 | | |
391 | 398 | | |
392 | 399 | | |
393 | | - | |
394 | | - | |
| 400 | + | |
| 401 | + | |
395 | 402 | | |
396 | 403 | | |
397 | 404 | | |
398 | 405 | | |
399 | | - | |
400 | | - | |
| 406 | + | |
| 407 | + | |
401 | 408 | | |
402 | | - | |
403 | | - | |
404 | | - | |
405 | | - | |
406 | | - | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
407 | 414 | | |
408 | 415 | | |
409 | 416 | | |
| |||
493 | 500 | | |
494 | 501 | | |
495 | 502 | | |
496 | | - | |
| 503 | + | |
497 | 504 | | |
498 | 505 | | |
499 | 506 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
| 60 | + | |
60 | 61 | | |
61 | 62 | | |
62 | 63 | | |
63 | 64 | | |
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| 68 | + | |
| 69 | + | |
67 | 70 | | |
68 | 71 | | |
69 | 72 | | |
| |||
2492 | 2495 | | |
2493 | 2496 | | |
2494 | 2497 | | |
| 2498 | + | |
| 2499 | + | |
| 2500 | + | |
| 2501 | + | |
2495 | 2502 | | |
2496 | 2503 | | |
2497 | 2504 | | |
| |||
0 commit comments