|
78 | 78 | // FIXME: gcc has nonnull
|
79 | 79 |
|
80 | 80 | #if defined(BUILTIN) && !defined(LIBBUILTIN)
|
81 |
| -# define LIBBUILTIN(ID, TYPE, ATTRS, HEADER) BUILTIN(ID, TYPE, ATTRS) |
| 81 | +# define LIBBUILTIN(ID, TYPE, ATTRS, HEADER, BUILTIN_LANG) BUILTIN(ID, TYPE, ATTRS) |
82 | 82 | #endif
|
83 | 83 |
|
84 | 84 | // Standard libc/libm functions:
|
@@ -512,85 +512,85 @@ BUILTIN(__noop, "v.", "n")
|
512 | 512 |
|
513 | 513 | // C99 library functions
|
514 | 514 | // C99 stdlib.h
|
515 |
| -LIBBUILTIN(abort, "v", "fr", "stdlib.h") |
516 |
| -LIBBUILTIN(calloc, "v*zz", "f", "stdlib.h") |
517 |
| -LIBBUILTIN(exit, "vi", "fr", "stdlib.h") |
518 |
| -LIBBUILTIN(_Exit, "vi", "fr", "stdlib.h") |
519 |
| -LIBBUILTIN(malloc, "v*z", "f", "stdlib.h") |
520 |
| -LIBBUILTIN(realloc, "v*v*z", "f", "stdlib.h") |
| 515 | +LIBBUILTIN(abort, "v", "fr", "stdlib.h", ALL_LANGUAGES) |
| 516 | +LIBBUILTIN(calloc, "v*zz", "f", "stdlib.h", ALL_LANGUAGES) |
| 517 | +LIBBUILTIN(exit, "vi", "fr", "stdlib.h", ALL_LANGUAGES) |
| 518 | +LIBBUILTIN(_Exit, "vi", "fr", "stdlib.h", ALL_LANGUAGES) |
| 519 | +LIBBUILTIN(malloc, "v*z", "f", "stdlib.h", ALL_LANGUAGES) |
| 520 | +LIBBUILTIN(realloc, "v*v*z", "f", "stdlib.h", ALL_LANGUAGES) |
521 | 521 | // C99 string.h
|
522 |
| -LIBBUILTIN(memcpy, "v*v*vC*z", "f", "string.h") |
523 |
| -LIBBUILTIN(memmove, "v*v*vC*z", "f", "string.h") |
524 |
| -LIBBUILTIN(strcpy, "c*c*cC*", "f", "string.h") |
525 |
| -LIBBUILTIN(strncpy, "c*c*cC*z", "f", "string.h") |
526 |
| -LIBBUILTIN(strcat, "c*c*cC*", "f", "string.h") |
527 |
| -LIBBUILTIN(strncat, "c*c*cC*z", "f", "string.h") |
528 |
| -LIBBUILTIN(strxfrm, "zc*cC*z", "f", "string.h") |
529 |
| -LIBBUILTIN(memchr, "v*vC*iz", "f", "string.h") |
530 |
| -LIBBUILTIN(strchr, "c*cC*i", "f", "string.h") |
531 |
| -LIBBUILTIN(strcspn, "zcC*cC*", "f", "string.h") |
532 |
| -LIBBUILTIN(strpbrk, "c*cC*cC*", "f", "string.h") |
533 |
| -LIBBUILTIN(strrchr, "c*cC*i", "f", "string.h") |
534 |
| -LIBBUILTIN(strspn, "zcC*cC*", "f", "string.h") |
535 |
| -LIBBUILTIN(strstr, "c*cC*cC*", "f", "string.h") |
536 |
| -LIBBUILTIN(strtok, "c*c*cC*", "f", "string.h") |
537 |
| -LIBBUILTIN(memset, "v*v*iz", "f", "string.h") |
538 |
| -LIBBUILTIN(strerror, "c*i", "f", "string.h") |
539 |
| -LIBBUILTIN(strlen, "zcC*", "f", "string.h") |
| 522 | +LIBBUILTIN(memcpy, "v*v*vC*z", "f", "string.h", ALL_LANGUAGES) |
| 523 | +LIBBUILTIN(memmove, "v*v*vC*z", "f", "string.h", ALL_LANGUAGES) |
| 524 | +LIBBUILTIN(strcpy, "c*c*cC*", "f", "string.h", ALL_LANGUAGES) |
| 525 | +LIBBUILTIN(strncpy, "c*c*cC*z", "f", "string.h", ALL_LANGUAGES) |
| 526 | +LIBBUILTIN(strcat, "c*c*cC*", "f", "string.h", ALL_LANGUAGES) |
| 527 | +LIBBUILTIN(strncat, "c*c*cC*z", "f", "string.h", ALL_LANGUAGES) |
| 528 | +LIBBUILTIN(strxfrm, "zc*cC*z", "f", "string.h", ALL_LANGUAGES) |
| 529 | +LIBBUILTIN(memchr, "v*vC*iz", "f", "string.h", ALL_LANGUAGES) |
| 530 | +LIBBUILTIN(strchr, "c*cC*i", "f", "string.h", ALL_LANGUAGES) |
| 531 | +LIBBUILTIN(strcspn, "zcC*cC*", "f", "string.h", ALL_LANGUAGES) |
| 532 | +LIBBUILTIN(strpbrk, "c*cC*cC*", "f", "string.h", ALL_LANGUAGES) |
| 533 | +LIBBUILTIN(strrchr, "c*cC*i", "f", "string.h", ALL_LANGUAGES) |
| 534 | +LIBBUILTIN(strspn, "zcC*cC*", "f", "string.h", ALL_LANGUAGES) |
| 535 | +LIBBUILTIN(strstr, "c*cC*cC*", "f", "string.h", ALL_LANGUAGES) |
| 536 | +LIBBUILTIN(strtok, "c*c*cC*", "f", "string.h", ALL_LANGUAGES) |
| 537 | +LIBBUILTIN(memset, "v*v*iz", "f", "string.h", ALL_LANGUAGES) |
| 538 | +LIBBUILTIN(strerror, "c*i", "f", "string.h", ALL_LANGUAGES) |
| 539 | +LIBBUILTIN(strlen, "zcC*", "f", "string.h", ALL_LANGUAGES) |
540 | 540 | // C99 stdio.h
|
541 |
| -LIBBUILTIN(printf, "icC*.", "fp:0:", "stdio.h") |
542 |
| -LIBBUILTIN(fprintf, "iP*cC*.", "fp:1:", "stdio.h") |
543 |
| -LIBBUILTIN(snprintf, "ic*zcC*.", "fp:2:", "stdio.h") |
544 |
| -LIBBUILTIN(sprintf, "ic*cC*.", "fp:1:", "stdio.h") |
545 |
| -LIBBUILTIN(vprintf, "icC*a", "fP:0:", "stdio.h") |
546 |
| -LIBBUILTIN(vfprintf, "i.", "fP:1:", "stdio.h") |
547 |
| -LIBBUILTIN(vsnprintf, "ic*zcC*a", "fP:2:", "stdio.h") |
548 |
| -LIBBUILTIN(vsprintf, "ic*cC*a", "fP:1:", "stdio.h") |
549 |
| -LIBBUILTIN(scanf, "icC*.", "fs:0:", "stdio.h") |
| 541 | +LIBBUILTIN(printf, "icC*.", "fp:0:", "stdio.h", ALL_LANGUAGES) |
| 542 | +LIBBUILTIN(fprintf, "iP*cC*.", "fp:1:", "stdio.h", ALL_LANGUAGES) |
| 543 | +LIBBUILTIN(snprintf, "ic*zcC*.", "fp:2:", "stdio.h", ALL_LANGUAGES) |
| 544 | +LIBBUILTIN(sprintf, "ic*cC*.", "fp:1:", "stdio.h", ALL_LANGUAGES) |
| 545 | +LIBBUILTIN(vprintf, "icC*a", "fP:0:", "stdio.h", ALL_LANGUAGES) |
| 546 | +LIBBUILTIN(vfprintf, "i.", "fP:1:", "stdio.h", ALL_LANGUAGES) |
| 547 | +LIBBUILTIN(vsnprintf, "ic*zcC*a", "fP:2:", "stdio.h", ALL_LANGUAGES) |
| 548 | +LIBBUILTIN(vsprintf, "ic*cC*a", "fP:1:", "stdio.h", ALL_LANGUAGES) |
| 549 | +LIBBUILTIN(scanf, "icC*.", "fs:0:", "stdio.h", ALL_LANGUAGES) |
550 | 550 | // C99
|
551 |
| -LIBBUILTIN(longjmp, "vJi", "fr", "setjmp.h") |
| 551 | +LIBBUILTIN(longjmp, "vJi", "fr", "setjmp.h", ALL_LANGUAGES) |
552 | 552 |
|
553 | 553 | // Non-C library functions
|
554 | 554 | // FIXME: Non-C-standard stuff shouldn't be builtins in non-GNU mode!
|
555 |
| -LIBBUILTIN(alloca, "v*z", "f", "stdlib.h") |
| 555 | +LIBBUILTIN(alloca, "v*z", "f", "stdlib.h", ALL_LANGUAGES) |
556 | 556 | // POSIX string.h
|
557 |
| -LIBBUILTIN(stpcpy, "c*c*cC*", "f", "string.h") |
558 |
| -LIBBUILTIN(stpncpy, "c*c*cC*z", "f", "string.h") |
559 |
| -LIBBUILTIN(strdup, "c*cC*", "f", "string.h") |
560 |
| -LIBBUILTIN(strndup, "c*cC*z", "f", "string.h") |
| 557 | +LIBBUILTIN(stpcpy, "c*c*cC*", "f", "string.h", ALL_LANGUAGES) |
| 558 | +LIBBUILTIN(stpncpy, "c*c*cC*z", "f", "string.h", ALL_LANGUAGES) |
| 559 | +LIBBUILTIN(strdup, "c*cC*", "f", "string.h", ALL_LANGUAGES) |
| 560 | +LIBBUILTIN(strndup, "c*cC*z", "f", "string.h", ALL_LANGUAGES) |
561 | 561 | // POSIX strings.h
|
562 |
| -LIBBUILTIN(index, "c*cC*i", "f", "strings.h") |
563 |
| -LIBBUILTIN(rindex, "c*cC*i", "f", "strings.h") |
564 |
| -LIBBUILTIN(bzero, "vv*z", "f", "strings.h") |
| 562 | +LIBBUILTIN(index, "c*cC*i", "f", "strings.h", ALL_LANGUAGES) |
| 563 | +LIBBUILTIN(rindex, "c*cC*i", "f", "strings.h", ALL_LANGUAGES) |
| 564 | +LIBBUILTIN(bzero, "vv*z", "f", "strings.h", ALL_LANGUAGES) |
565 | 565 | // POSIX unistd.h
|
566 |
| -LIBBUILTIN(_exit, "vi", "fr", "unistd.h") |
| 566 | +LIBBUILTIN(_exit, "vi", "fr", "unistd.h", ALL_LANGUAGES) |
567 | 567 | // POSIX setjmp.h
|
568 |
| -LIBBUILTIN(_longjmp, "vJi", "fr", "setjmp.h") |
569 |
| -LIBBUILTIN(siglongjmp, "vSJi", "fr", "setjmp.h") |
| 568 | +LIBBUILTIN(_longjmp, "vJi", "fr", "setjmp.h", ALL_LANGUAGES) |
| 569 | +LIBBUILTIN(siglongjmp, "vSJi", "fr", "setjmp.h", ALL_LANGUAGES) |
570 | 570 | // id objc_msgSend(id, SEL, ...)
|
571 |
| -LIBBUILTIN(objc_msgSend, "GGH.", "f", "objc/message.h") |
| 571 | +LIBBUILTIN(objc_msgSend, "GGH.", "f", "objc/message.h", OBJC_LANG) |
572 | 572 | BUILTIN(__builtin_objc_memmove_collectable, "v*v*vC*z", "nF")
|
573 | 573 |
|
574 | 574 | // Builtin math library functions
|
575 |
| -LIBBUILTIN(pow, "ddd", "fe", "math.h") |
576 |
| -LIBBUILTIN(powl, "LdLdLd", "fe", "math.h") |
577 |
| -LIBBUILTIN(powf, "fff", "fe", "math.h") |
| 575 | +LIBBUILTIN(pow, "ddd", "fe", "math.h", ALL_LANGUAGES) |
| 576 | +LIBBUILTIN(powl, "LdLdLd", "fe", "math.h", ALL_LANGUAGES) |
| 577 | +LIBBUILTIN(powf, "fff", "fe", "math.h", ALL_LANGUAGES) |
578 | 578 |
|
579 |
| -LIBBUILTIN(sqrt, "dd", "fe", "math.h") |
580 |
| -LIBBUILTIN(sqrtl, "LdLd", "fe", "math.h") |
581 |
| -LIBBUILTIN(sqrtf, "ff", "fe", "math.h") |
| 579 | +LIBBUILTIN(sqrt, "dd", "fe", "math.h", ALL_LANGUAGES) |
| 580 | +LIBBUILTIN(sqrtl, "LdLd", "fe", "math.h", ALL_LANGUAGES) |
| 581 | +LIBBUILTIN(sqrtf, "ff", "fe", "math.h", ALL_LANGUAGES) |
582 | 582 |
|
583 |
| -LIBBUILTIN(sin, "dd", "fe", "math.h") |
584 |
| -LIBBUILTIN(sinl, "LdLd", "fe", "math.h") |
585 |
| -LIBBUILTIN(sinf, "ff", "fe", "math.h") |
| 583 | +LIBBUILTIN(sin, "dd", "fe", "math.h", ALL_LANGUAGES) |
| 584 | +LIBBUILTIN(sinl, "LdLd", "fe", "math.h", ALL_LANGUAGES) |
| 585 | +LIBBUILTIN(sinf, "ff", "fe", "math.h", ALL_LANGUAGES) |
586 | 586 |
|
587 |
| -LIBBUILTIN(cos, "dd", "fe", "math.h") |
588 |
| -LIBBUILTIN(cosl, "LdLd", "fe", "math.h") |
589 |
| -LIBBUILTIN(cosf, "ff", "fe", "math.h") |
| 587 | +LIBBUILTIN(cos, "dd", "fe", "math.h", ALL_LANGUAGES) |
| 588 | +LIBBUILTIN(cosl, "LdLd", "fe", "math.h", ALL_LANGUAGES) |
| 589 | +LIBBUILTIN(cosf, "ff", "fe", "math.h", ALL_LANGUAGES) |
590 | 590 |
|
591 | 591 | // Blocks runtime Builtin math library functions
|
592 |
| -LIBBUILTIN(_Block_object_assign, "vv*vC*iC", "f", "Blocks.h") |
593 |
| -LIBBUILTIN(_Block_object_dispose, "vvC*iC", "f", "Blocks.h") |
| 592 | +LIBBUILTIN(_Block_object_assign, "vv*vC*iC", "f", "Blocks.h", ALL_LANGUAGES) |
| 593 | +LIBBUILTIN(_Block_object_dispose, "vvC*iC", "f", "Blocks.h", ALL_LANGUAGES) |
594 | 594 | // FIXME: Also declare NSConcreteGlobalBlock and NSConcreteStackBlock.
|
595 | 595 |
|
596 | 596 | #undef BUILTIN
|
|
0 commit comments