1 ; RUN: opt < %s -mtriple=x86_64-unknown-linux -inferattrs -S | FileCheck %s 2 ; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -inferattrs -S | FileCheck %s 3 4 ; Check that we don't modify libc functions with invalid prototypes. 5 6 ; CHECK: declare void @__cospi(...) 7 declare void @__cospi(...) 8 9 ; CHECK: declare void @__cospif(...) 10 declare void @__cospif(...) 11 12 ; CHECK: declare void @__sinpi(...) 13 declare void @__sinpi(...) 14 15 ; CHECK: declare void @__sinpif(...) 16 declare void @__sinpif(...) 17 18 ; CHECK: declare void @abs(...) 19 declare void @abs(...) 20 21 ; CHECK: declare void @access(...) 22 declare void @access(...) 23 24 ; CHECK: declare void @acos(...) 25 declare void @acos(...) 26 27 ; CHECK: declare void @acosf(...) 28 declare void @acosf(...) 29 30 ; CHECK: declare void @acosh(...) 31 declare void @acosh(...) 32 33 ; CHECK: declare void @acoshf(...) 34 declare void @acoshf(...) 35 36 ; CHECK: declare void @acoshl(...) 37 declare void @acoshl(...) 38 39 ; CHECK: declare void @acosl(...) 40 declare void @acosl(...) 41 42 ; CHECK: declare void @asin(...) 43 declare void @asin(...) 44 45 ; CHECK: declare void @asinf(...) 46 declare void @asinf(...) 47 48 ; CHECK: declare void @asinh(...) 49 declare void @asinh(...) 50 51 ; CHECK: declare void @asinhf(...) 52 declare void @asinhf(...) 53 54 ; CHECK: declare void @asinhl(...) 55 declare void @asinhl(...) 56 57 ; CHECK: declare void @asinl(...) 58 declare void @asinl(...) 59 60 ; CHECK: declare void @atan(...) 61 declare void @atan(...) 62 63 ; CHECK: declare void @atan2(...) 64 declare void @atan2(...) 65 66 ; CHECK: declare void @atan2f(...) 67 declare void @atan2f(...) 68 69 ; CHECK: declare void @atan2l(...) 70 declare void @atan2l(...) 71 72 ; CHECK: declare void @atanf(...) 73 declare void @atanf(...) 74 75 ; CHECK: declare void @atanh(...) 76 declare void @atanh(...) 77 78 ; CHECK: declare void @atanhf(...) 79 declare void @atanhf(...) 80 81 ; CHECK: declare void @atanhl(...) 82 declare void @atanhl(...) 83 84 ; CHECK: declare void @atanl(...) 85 declare void @atanl(...) 86 87 ; CHECK: declare void @atof(...) 88 declare void @atof(...) 89 90 ; CHECK: declare void @atoi(...) 91 declare void @atoi(...) 92 93 ; CHECK: declare void @atol(...) 94 declare void @atol(...) 95 96 ; CHECK: declare void @atoll(...) 97 declare void @atoll(...) 98 99 ; CHECK: declare void @bcmp(...) 100 declare void @bcmp(...) 101 102 ; CHECK: declare void @bcopy(...) 103 declare void @bcopy(...) 104 105 ; CHECK: declare void @bzero(...) 106 declare void @bzero(...) 107 108 ; CHECK: declare void @calloc(...) 109 declare void @calloc(...) 110 111 ; CHECK: declare void @cbrt(...) 112 declare void @cbrt(...) 113 114 ; CHECK: declare void @cbrtf(...) 115 declare void @cbrtf(...) 116 117 ; CHECK: declare void @cbrtl(...) 118 declare void @cbrtl(...) 119 120 ; CHECK: declare void @ceil(...) 121 declare void @ceil(...) 122 123 ; CHECK: declare void @ceilf(...) 124 declare void @ceilf(...) 125 126 ; CHECK: declare void @ceill(...) 127 declare void @ceill(...) 128 129 ; CHECK: declare void @chmod(...) 130 declare void @chmod(...) 131 132 ; CHECK: declare void @chown(...) 133 declare void @chown(...) 134 135 ; CHECK: declare void @clearerr(...) 136 declare void @clearerr(...) 137 138 ; CHECK: declare void @closedir(...) 139 declare void @closedir(...) 140 141 ; CHECK: declare void @copysign(...) 142 declare void @copysign(...) 143 144 ; CHECK: declare void @copysignf(...) 145 declare void @copysignf(...) 146 147 ; CHECK: declare void @copysignl(...) 148 declare void @copysignl(...) 149 150 ; CHECK: declare void @cos(...) 151 declare void @cos(...) 152 153 ; CHECK: declare void @cosf(...) 154 declare void @cosf(...) 155 156 ; CHECK: declare void @cosh(...) 157 declare void @cosh(...) 158 159 ; CHECK: declare void @coshf(...) 160 declare void @coshf(...) 161 162 ; CHECK: declare void @coshl(...) 163 declare void @coshl(...) 164 165 ; CHECK: declare void @cosl(...) 166 declare void @cosl(...) 167 168 ; CHECK: declare void @ctermid(...) 169 declare void @ctermid(...) 170 171 ; CHECK: declare void @exp(...) 172 declare void @exp(...) 173 174 ; CHECK: declare void @exp2(...) 175 declare void @exp2(...) 176 177 ; CHECK: declare void @exp2f(...) 178 declare void @exp2f(...) 179 180 ; CHECK: declare void @exp2l(...) 181 declare void @exp2l(...) 182 183 ; CHECK: declare void @expf(...) 184 declare void @expf(...) 185 186 ; CHECK: declare void @expl(...) 187 declare void @expl(...) 188 189 ; CHECK: declare void @expm1(...) 190 declare void @expm1(...) 191 192 ; CHECK: declare void @expm1f(...) 193 declare void @expm1f(...) 194 195 ; CHECK: declare void @expm1l(...) 196 declare void @expm1l(...) 197 198 ; CHECK: declare void @fabs(...) 199 declare void @fabs(...) 200 201 ; CHECK: declare void @fabsf(...) 202 declare void @fabsf(...) 203 204 ; CHECK: declare void @fabsl(...) 205 declare void @fabsl(...) 206 207 ; CHECK: declare void @fclose(...) 208 declare void @fclose(...) 209 210 ; CHECK: declare void @fdopen(...) 211 declare void @fdopen(...) 212 213 ; CHECK: declare void @feof(...) 214 declare void @feof(...) 215 216 ; CHECK: declare void @ferror(...) 217 declare void @ferror(...) 218 219 ; CHECK: declare void @fflush(...) 220 declare void @fflush(...) 221 222 ; CHECK: declare void @ffs(...) 223 declare void @ffs(...) 224 225 ; CHECK: declare void @ffsl(...) 226 declare void @ffsl(...) 227 228 ; CHECK: declare void @ffsll(...) 229 declare void @ffsll(...) 230 231 ; CHECK: declare void @fgetc(...) 232 declare void @fgetc(...) 233 234 ; CHECK: declare void @fgetpos(...) 235 declare void @fgetpos(...) 236 237 ; CHECK: declare void @fgets(...) 238 declare void @fgets(...) 239 240 ; CHECK: declare void @fileno(...) 241 declare void @fileno(...) 242 243 ; CHECK: declare void @flockfile(...) 244 declare void @flockfile(...) 245 246 ; CHECK: declare void @floor(...) 247 declare void @floor(...) 248 249 ; CHECK: declare void @floorf(...) 250 declare void @floorf(...) 251 252 ; CHECK: declare void @floorl(...) 253 declare void @floorl(...) 254 255 ; CHECK: declare void @fls(...) 256 declare void @fls(...) 257 258 ; CHECK: declare void @flsl(...) 259 declare void @flsl(...) 260 261 ; CHECK: declare void @flsll(...) 262 declare void @flsll(...) 263 264 ; CHECK: declare void @fmax(...) 265 declare void @fmax(...) 266 267 ; CHECK: declare void @fmaxf(...) 268 declare void @fmaxf(...) 269 270 ; CHECK: declare void @fmaxl(...) 271 declare void @fmaxl(...) 272 273 ; CHECK: declare void @fmin(...) 274 declare void @fmin(...) 275 276 ; CHECK: declare void @fminf(...) 277 declare void @fminf(...) 278 279 ; CHECK: declare void @fminl(...) 280 declare void @fminl(...) 281 282 ; CHECK: declare void @fmod(...) 283 declare void @fmod(...) 284 285 ; CHECK: declare void @fmodf(...) 286 declare void @fmodf(...) 287 288 ; CHECK: declare void @fmodl(...) 289 declare void @fmodl(...) 290 291 ; CHECK: declare void @fopen(...) 292 declare void @fopen(...) 293 294 ; CHECK: declare void @fprintf(...) 295 declare void @fprintf(...) 296 297 ; CHECK: declare void @fputc(...) 298 declare void @fputc(...) 299 300 ; CHECK: declare void @fputs(...) 301 declare void @fputs(...) 302 303 ; CHECK: declare void @fread(...) 304 declare void @fread(...) 305 306 ; CHECK: declare void @free(...) 307 declare void @free(...) 308 309 ; CHECK: declare void @frexp(...) 310 declare void @frexp(...) 311 312 ; CHECK: declare void @frexpf(...) 313 declare void @frexpf(...) 314 315 ; CHECK: declare void @frexpl(...) 316 declare void @frexpl(...) 317 318 ; CHECK: declare void @fscanf(...) 319 declare void @fscanf(...) 320 321 ; CHECK: declare void @fseek(...) 322 declare void @fseek(...) 323 324 ; CHECK: declare void @fseeko(...) 325 declare void @fseeko(...) 326 327 ; CHECK: declare void @fseeko64(...) 328 declare void @fseeko64(...) 329 330 ; CHECK: declare void @fsetpos(...) 331 declare void @fsetpos(...) 332 333 ; CHECK: declare void @fstat(...) 334 declare void @fstat(...) 335 336 ; CHECK: declare void @fstat64(...) 337 declare void @fstat64(...) 338 339 ; CHECK: declare void @fstatvfs(...) 340 declare void @fstatvfs(...) 341 342 ; CHECK: declare void @fstatvfs64(...) 343 declare void @fstatvfs64(...) 344 345 ; CHECK: declare void @ftell(...) 346 declare void @ftell(...) 347 348 ; CHECK: declare void @ftello(...) 349 declare void @ftello(...) 350 351 ; CHECK: declare void @ftello64(...) 352 declare void @ftello64(...) 353 354 ; CHECK: declare void @ftrylockfile(...) 355 declare void @ftrylockfile(...) 356 357 ; CHECK: declare void @funlockfile(...) 358 declare void @funlockfile(...) 359 360 ; CHECK: declare void @fwrite(...) 361 declare void @fwrite(...) 362 363 ; CHECK: declare void @getc(...) 364 declare void @getc(...) 365 366 ; CHECK: declare void @getc_unlocked(...) 367 declare void @getc_unlocked(...) 368 369 ; CHECK: declare void @getchar(...) 370 declare void @getchar(...) 371 372 ; CHECK: declare void @getenv(...) 373 declare void @getenv(...) 374 375 ; CHECK: declare void @getitimer(...) 376 declare void @getitimer(...) 377 378 ; CHECK: declare void @getlogin_r(...) 379 declare void @getlogin_r(...) 380 381 ; CHECK: declare void @getpwnam(...) 382 declare void @getpwnam(...) 383 384 ; CHECK: declare void @gets(...) 385 declare void @gets(...) 386 387 ; CHECK: declare void @gettimeofday(...) 388 declare void @gettimeofday(...) 389 390 ; CHECK: declare void @isascii(...) 391 declare void @isascii(...) 392 393 ; CHECK: declare void @isdigit(...) 394 declare void @isdigit(...) 395 396 ; CHECK: declare void @labs(...) 397 declare void @labs(...) 398 399 ; CHECK: declare void @lchown(...) 400 declare void @lchown(...) 401 402 ; CHECK: declare void @ldexp(...) 403 declare void @ldexp(...) 404 405 ; CHECK: declare void @ldexpf(...) 406 declare void @ldexpf(...) 407 408 ; CHECK: declare void @ldexpl(...) 409 declare void @ldexpl(...) 410 411 ; CHECK: declare void @llabs(...) 412 declare void @llabs(...) 413 414 ; CHECK: declare void @log(...) 415 declare void @log(...) 416 417 ; CHECK: declare void @log10(...) 418 declare void @log10(...) 419 420 ; CHECK: declare void @log10f(...) 421 declare void @log10f(...) 422 423 ; CHECK: declare void @log10l(...) 424 declare void @log10l(...) 425 426 ; CHECK: declare void @log1p(...) 427 declare void @log1p(...) 428 429 ; CHECK: declare void @log1pf(...) 430 declare void @log1pf(...) 431 432 ; CHECK: declare void @log1pl(...) 433 declare void @log1pl(...) 434 435 ; CHECK: declare void @log2(...) 436 declare void @log2(...) 437 438 ; CHECK: declare void @log2f(...) 439 declare void @log2f(...) 440 441 ; CHECK: declare void @log2l(...) 442 declare void @log2l(...) 443 444 ; CHECK: declare void @logb(...) 445 declare void @logb(...) 446 447 ; CHECK: declare void @logbf(...) 448 declare void @logbf(...) 449 450 ; CHECK: declare void @logbl(...) 451 declare void @logbl(...) 452 453 ; CHECK: declare void @logf(...) 454 declare void @logf(...) 455 456 ; CHECK: declare void @logl(...) 457 declare void @logl(...) 458 459 ; CHECK: declare void @lstat(...) 460 declare void @lstat(...) 461 462 ; CHECK: declare void @lstat64(...) 463 declare void @lstat64(...) 464 465 ; CHECK: declare void @malloc(...) 466 declare void @malloc(...) 467 468 ; CHECK: declare void @memalign(...) 469 declare void @memalign(...) 470 471 ; CHECK: declare void @memccpy(...) 472 declare void @memccpy(...) 473 474 ; CHECK: declare void @memchr(...) 475 declare void @memchr(...) 476 477 ; CHECK: declare void @memcmp(...) 478 declare void @memcmp(...) 479 480 ; CHECK: declare void @memcpy(...) 481 declare void @memcpy(...) 482 483 ; CHECK: declare void @memmove(...) 484 declare void @memmove(...) 485 486 ; CHECK: declare void @memset(...) 487 declare void @memset(...) 488 489 ; CHECK: declare void @memset_pattern16(...) 490 declare void @memset_pattern16(...) 491 492 ; CHECK: declare void @mkdir(...) 493 declare void @mkdir(...) 494 495 ; CHECK: declare void @mktime(...) 496 declare void @mktime(...) 497 498 ; CHECK: declare void @modf(...) 499 declare void @modf(...) 500 501 ; CHECK: declare void @modff(...) 502 declare void @modff(...) 503 504 ; CHECK: declare void @modfl(...) 505 declare void @modfl(...) 506 507 ; CHECK: declare void @nearbyint(...) 508 declare void @nearbyint(...) 509 510 ; CHECK: declare void @nearbyintf(...) 511 declare void @nearbyintf(...) 512 513 ; CHECK: declare void @nearbyintl(...) 514 declare void @nearbyintl(...) 515 516 ; CHECK: declare void @open(...) 517 declare void @open(...) 518 519 ; CHECK: declare void @open64(...) 520 declare void @open64(...) 521 522 ; CHECK: declare void @opendir(...) 523 declare void @opendir(...) 524 525 ; CHECK: declare void @pclose(...) 526 declare void @pclose(...) 527 528 ; CHECK: declare void @perror(...) 529 declare void @perror(...) 530 531 ; CHECK: declare void @popen(...) 532 declare void @popen(...) 533 534 ; CHECK: declare void @posix_memalign(...) 535 declare void @posix_memalign(...) 536 537 ; CHECK: declare void @pow(...) 538 declare void @pow(...) 539 540 ; CHECK: declare void @powf(...) 541 declare void @powf(...) 542 543 ; CHECK: declare void @powl(...) 544 declare void @powl(...) 545 546 ; CHECK: declare void @pread(...) 547 declare void @pread(...) 548 549 ; CHECK: declare void @printf(...) 550 declare void @printf(...) 551 552 ; CHECK: declare void @putc(...) 553 declare void @putc(...) 554 555 ; CHECK: declare void @putchar(...) 556 declare void @putchar(...) 557 558 ; CHECK: declare void @puts(...) 559 declare void @puts(...) 560 561 ; CHECK: declare void @pwrite(...) 562 declare void @pwrite(...) 563 564 ; CHECK: declare void @qsort(...) 565 declare void @qsort(...) 566 567 ; CHECK: declare void @read(...) 568 declare void @read(...) 569 570 ; CHECK: declare void @readlink(...) 571 declare void @readlink(...) 572 573 ; CHECK: declare void @realloc(...) 574 declare void @realloc(...) 575 576 ; CHECK: declare void @reallocf(...) 577 declare void @reallocf(...) 578 579 ; CHECK: declare void @realpath(...) 580 declare void @realpath(...) 581 582 ; CHECK: declare void @remove(...) 583 declare void @remove(...) 584 585 ; CHECK: declare void @rename(...) 586 declare void @rename(...) 587 588 ; CHECK: declare void @rewind(...) 589 declare void @rewind(...) 590 591 ; CHECK: declare void @rint(...) 592 declare void @rint(...) 593 594 ; CHECK: declare void @rintf(...) 595 declare void @rintf(...) 596 597 ; CHECK: declare void @rintl(...) 598 declare void @rintl(...) 599 600 ; CHECK: declare void @rmdir(...) 601 declare void @rmdir(...) 602 603 ; CHECK: declare void @round(...) 604 declare void @round(...) 605 606 ; CHECK: declare void @roundf(...) 607 declare void @roundf(...) 608 609 ; CHECK: declare void @roundl(...) 610 declare void @roundl(...) 611 612 ; CHECK: declare void @scanf(...) 613 declare void @scanf(...) 614 615 ; CHECK: declare void @setbuf(...) 616 declare void @setbuf(...) 617 618 ; CHECK: declare void @setitimer(...) 619 declare void @setitimer(...) 620 621 ; CHECK: declare void @setvbuf(...) 622 declare void @setvbuf(...) 623 624 ; CHECK: declare void @sin(...) 625 declare void @sin(...) 626 627 ; CHECK: declare void @sinf(...) 628 declare void @sinf(...) 629 630 ; CHECK: declare void @sinh(...) 631 declare void @sinh(...) 632 633 ; CHECK: declare void @sinhf(...) 634 declare void @sinhf(...) 635 636 ; CHECK: declare void @sinhl(...) 637 declare void @sinhl(...) 638 639 ; CHECK: declare void @sinl(...) 640 declare void @sinl(...) 641 642 ; CHECK: declare void @snprintf(...) 643 declare void @snprintf(...) 644 645 ; CHECK: declare void @sprintf(...) 646 declare void @sprintf(...) 647 648 ; CHECK: declare void @sqrt(...) 649 declare void @sqrt(...) 650 651 ; CHECK: declare void @sqrtf(...) 652 declare void @sqrtf(...) 653 654 ; CHECK: declare void @sqrtl(...) 655 declare void @sqrtl(...) 656 657 ; CHECK: declare void @sscanf(...) 658 declare void @sscanf(...) 659 660 ; CHECK: declare void @stat(...) 661 declare void @stat(...) 662 663 ; CHECK: declare void @stat64(...) 664 declare void @stat64(...) 665 666 ; CHECK: declare void @statvfs(...) 667 declare void @statvfs(...) 668 669 ; CHECK: declare void @statvfs64(...) 670 declare void @statvfs64(...) 671 672 ; CHECK: declare void @stpcpy(...) 673 declare void @stpcpy(...) 674 675 ; CHECK: declare void @stpncpy(...) 676 declare void @stpncpy(...) 677 678 ; CHECK: declare void @strcasecmp(...) 679 declare void @strcasecmp(...) 680 681 ; CHECK: declare void @strcat(...) 682 declare void @strcat(...) 683 684 ; CHECK: declare void @strchr(...) 685 declare void @strchr(...) 686 687 ; CHECK: declare void @strcmp(...) 688 declare void @strcmp(...) 689 690 ; CHECK: declare void @strcoll(...) 691 declare void @strcoll(...) 692 693 ; CHECK: declare void @strcpy(...) 694 declare void @strcpy(...) 695 696 ; CHECK: declare void @strcspn(...) 697 declare void @strcspn(...) 698 699 ; CHECK: declare void @strdup(...) 700 declare void @strdup(...) 701 702 ; CHECK: declare void @strlen(...) 703 declare void @strlen(...) 704 705 ; CHECK: declare void @strncasecmp(...) 706 declare void @strncasecmp(...) 707 708 ; CHECK: declare void @strncat(...) 709 declare void @strncat(...) 710 711 ; CHECK: declare void @strncmp(...) 712 declare void @strncmp(...) 713 714 ; CHECK: declare void @strncpy(...) 715 declare void @strncpy(...) 716 717 ; CHECK: declare void @strndup(...) 718 declare void @strndup(...) 719 720 ; CHECK: declare void @strnlen(...) 721 declare void @strnlen(...) 722 723 ; CHECK: declare void @strpbrk(...) 724 declare void @strpbrk(...) 725 726 ; CHECK: declare void @strrchr(...) 727 declare void @strrchr(...) 728 729 ; CHECK: declare void @strspn(...) 730 declare void @strspn(...) 731 732 ; CHECK: declare void @strstr(...) 733 declare void @strstr(...) 734 735 ; CHECK: declare void @strtod(...) 736 declare void @strtod(...) 737 738 ; CHECK: declare void @strtof(...) 739 declare void @strtof(...) 740 741 ; CHECK: declare void @strtok(...) 742 declare void @strtok(...) 743 744 ; CHECK: declare void @strtok_r(...) 745 declare void @strtok_r(...) 746 747 ; CHECK: declare void @strtol(...) 748 declare void @strtol(...) 749 750 ; CHECK: declare void @strtold(...) 751 declare void @strtold(...) 752 753 ; CHECK: declare void @strtoll(...) 754 declare void @strtoll(...) 755 756 ; CHECK: declare void @strtoul(...) 757 declare void @strtoul(...) 758 759 ; CHECK: declare void @strtoull(...) 760 declare void @strtoull(...) 761 762 ; CHECK: declare void @strxfrm(...) 763 declare void @strxfrm(...) 764 765 ; CHECK: declare void @system(...) 766 declare void @system(...) 767 768 ; CHECK: declare void @tan(...) 769 declare void @tan(...) 770 771 ; CHECK: declare void @tanf(...) 772 declare void @tanf(...) 773 774 ; CHECK: declare void @tanh(...) 775 declare void @tanh(...) 776 777 ; CHECK: declare void @tanhf(...) 778 declare void @tanhf(...) 779 780 ; CHECK: declare void @tanhl(...) 781 declare void @tanhl(...) 782 783 ; CHECK: declare void @tanl(...) 784 declare void @tanl(...) 785 786 ; CHECK: declare void @times(...) 787 declare void @times(...) 788 789 ; CHECK: declare void @tmpfile(...) 790 declare void @tmpfile(...) 791 792 ; CHECK: declare void @tmpfile64(...) 793 declare void @tmpfile64(...) 794 795 ; CHECK: declare void @toascii(...) 796 declare void @toascii(...) 797 798 ; CHECK: declare void @trunc(...) 799 declare void @trunc(...) 800 801 ; CHECK: declare void @truncf(...) 802 declare void @truncf(...) 803 804 ; CHECK: declare void @truncl(...) 805 declare void @truncl(...) 806 807 ; CHECK: declare void @uname(...) 808 declare void @uname(...) 809 810 ; CHECK: declare void @ungetc(...) 811 declare void @ungetc(...) 812 813 ; CHECK: declare void @unlink(...) 814 declare void @unlink(...) 815 816 ; CHECK: declare void @unsetenv(...) 817 declare void @unsetenv(...) 818 819 ; CHECK: declare void @utime(...) 820 declare void @utime(...) 821 822 ; CHECK: declare void @utimes(...) 823 declare void @utimes(...) 824 825 ; CHECK: declare void @valloc(...) 826 declare void @valloc(...) 827 828 ; CHECK: declare void @vfprintf(...) 829 declare void @vfprintf(...) 830 831 ; CHECK: declare void @vfscanf(...) 832 declare void @vfscanf(...) 833 834 ; CHECK: declare void @vprintf(...) 835 declare void @vprintf(...) 836 837 ; CHECK: declare void @vscanf(...) 838 declare void @vscanf(...) 839 840 ; CHECK: declare void @vsnprintf(...) 841 declare void @vsnprintf(...) 842 843 ; CHECK: declare void @vsprintf(...) 844 declare void @vsprintf(...) 845 846 ; CHECK: declare void @vsscanf(...) 847 declare void @vsscanf(...) 848 849 ; CHECK: declare void @write(...) 850 declare void @write(...) 851