Lines Matching full:signature
679 // type in a Signature.
683 // The signature of a function we want to describe with a summary. This is a
684 // concessive signature, meaning there may be irrelevant types in the
685 // signature which we do not check against a function with concrete types.
687 class Signature {
695 // Construct a signature from optional types. If any of the optional types
696 // are not set then the signature will be invalid.
697 Signature(ArgTypes ArgTys, RetType RetTy) {
743 /// * function prototype (signature)
751 /// The signature and argument constraints together contain information
752 /// about which functions are handled by the summary. The signature can use
754 /// a signature means that type is not compared to the type of the parameter
757 /// signature is matched.
764 // match to the signature.
797 bool matchesAndSet(const Signature &Sign, const FunctionDecl *FD) {
1497 bool StdLibraryFunctionsChecker::Signature::matches(
1726 bool operator()(StringRef Name, Signature Sign, Summary Sum) {
1750 // Add the same summary for different names with the Signature explicitly
1752 void operator()(ArrayRef<StringRef> Names, Signature Sign, Summary Sum) {
1834 "isalnum", Signature(ArgTypes{IntTy}, RetType{IntTy}),
1856 "isalpha", Signature(ArgTypes{IntTy}, RetType{IntTy}),
1870 "isascii", Signature(ArgTypes{IntTy}, RetType{IntTy}),
1880 "isblank", Signature(ArgTypes{IntTy}, RetType{IntTy}),
1890 "iscntrl", Signature(ArgTypes{IntTy}, RetType{IntTy}),
1901 "isdigit", Signature(ArgTypes{IntTy}, RetType{IntTy}),
1910 "isgraph", Signature(ArgTypes{IntTy}, RetType{IntTy}),
1922 "islower", Signature(ArgTypes{IntTy}, RetType{IntTy}),
1942 "isprint", Signature(ArgTypes{IntTy}, RetType{IntTy}),
1951 "ispunct", Signature(ArgTypes{IntTy}, RetType{IntTy}),
1965 "isspace", Signature(ArgTypes{IntTy}, RetType{IntTy}),
1981 "isupper", Signature(ArgTypes{IntTy}, RetType{IntTy}),
1998 "isxdigit", Signature(ArgTypes{IntTy}, RetType{IntTy}),
2011 "toupper", Signature(ArgTypes{IntTy}, RetType{IntTy}),
2017 "tolower", Signature(ArgTypes{IntTy}, RetType{IntTy}),
2023 "toascii", Signature(ArgTypes{IntTy}, RetType{IntTy}),
2030 "getchar", Signature(ArgTypes{}, RetType{IntTy}),
2061 Signature(ArgTypes{VoidPtrRestrictTy, SizeTy, SizeTy, FilePtrRestrictTy},
2067 Signature(ArgTypes{ConstVoidPtrRestrictTy, SizeTy,
2085 "read", Signature(ArgTypes{IntTy, VoidPtrTy, SizeTy}, RetType{Ssize_tTy}),
2090 Signature(ArgTypes{IntTy, ConstVoidPtrTy, SizeTy}, RetType{Ssize_tTy}),
2108 Signature(
2116 Signature(ArgTypes{CharPtrPtrRestrictTy, SizePtrRestrictTy, IntTy,
2134 "getenv", Signature(ArgTypes{ConstCharPtrTy}, RetType{CharPtrTy}),
2142 {"getc", "fgetc"}, Signature(ArgTypes{FilePtrTy}, RetType{IntTy}),
2174 Signature(ArgTypes{ConstCharPtrRestrictTy, ConstCharPtrRestrictTy},
2185 Signature(ArgTypes{IntTy, ConstCharPtrTy}, RetType{FilePtrTy}),
2194 "tmpfile", Signature(ArgTypes{}, RetType{FilePtrTy}),
2203 Signature(ArgTypes{ConstCharPtrRestrictTy, ConstCharPtrRestrictTy,
2216 Signature(ArgTypes{ConstCharPtrTy, ConstCharPtrTy}, RetType{FilePtrTy}),
2225 "fclose", Signature(ArgTypes{FilePtrTy}, RetType{IntTy}),
2233 "pclose", Signature(ArgTypes{FilePtrTy}, RetType{IntTy}),
2246 {"getc", "fgetc"}, Signature(ArgTypes{FilePtrTy}, RetType{IntTy}),
2258 Signature(ArgTypes{IntTy, FilePtrTy}, RetType{IntTy}),
2273 Signature(ArgTypes{CharPtrRestrictTy, IntTy, FilePtrRestrictTy},
2288 Signature(ArgTypes{ConstCharPtrRestrictTy, FilePtrRestrictTy},
2299 "ungetc", Signature(ArgTypes{IntTy, FilePtrTy}, RetType{IntTy}),
2321 "fseek", Signature(ArgTypes{FilePtrTy, LongTy, IntTy}, RetType{IntTy}),
2331 Signature(ArgTypes{FilePtrTy, Off_tTy, IntTy}, RetType{IntTy}),
2344 Signature(ArgTypes{FilePtrRestrictTy, FPosTPtrRestrictTy},
2358 Signature(ArgTypes{FilePtrTy, ConstFPosTPtrTy}, RetType{IntTy}),
2367 "fflush", Signature(ArgTypes{FilePtrTy}, RetType{IntTy}),
2377 "ftell", Signature(ArgTypes{FilePtrTy}, RetType{LongTy}),
2386 "ftello", Signature(ArgTypes{FilePtrTy}, RetType{Off_tTy}),
2400 "fileno", Signature(ArgTypes{FilePtrTy}, RetType{IntTy}),
2408 Signature(ArgTypes{FilePtrTy}, RetType{VoidTy}),
2415 "clearerr", Signature(ArgTypes{FilePtrTy}, RetType{VoidTy}),
2420 "feof", Signature(ArgTypes{FilePtrTy}, RetType{IntTy}),
2425 "ferror", Signature(ArgTypes{FilePtrTy}, RetType{IntTy}),
2430 "a64l", Signature(ArgTypes{ConstCharPtrTy}, RetType{LongTy}),
2435 Signature(ArgTypes{LongTy}, RetType{CharPtrTy}),
2442 "open", Signature(ArgTypes{ConstCharPtrTy, IntTy}, RetType{IntTy}),
2452 Signature(ArgTypes{IntTy, ConstCharPtrTy, IntTy}, RetType{IntTy}),
2462 "access", Signature(ArgTypes{ConstCharPtrTy, IntTy}, RetType{IntTy}),
2471 Signature(ArgTypes{IntTy, ConstCharPtrTy, IntTy, IntTy},
2481 "dup", Signature(ArgTypes{IntTy}, RetType{IntTy}),
2491 "dup2", Signature(ArgTypes{IntTy, IntTy}, RetType{IntTy}),
2502 "fdatasync", Signature(ArgTypes{IntTy}, RetType{IntTy}),
2512 Signature(ArgTypes{ConstCharPtrTy, ConstCharPtrTy, IntTy},
2520 "fsync", Signature(ArgTypes{IntTy}, RetType{IntTy}),
2530 Signature(ArgTypes{ConstCharPtrTy, Off_tTy}, RetType{IntTy}),
2539 Signature(ArgTypes{ConstCharPtrTy, ConstCharPtrTy}, RetType{IntTy}),
2549 Signature(ArgTypes{ConstCharPtrTy, IntTy, ConstCharPtrTy},
2560 "lockf", Signature(ArgTypes{IntTy, IntTy, Off_tTy}, RetType{IntTy}),
2571 "creat", Signature(ArgTypes{ConstCharPtrTy, Mode_tTy}, RetType{IntTy}),
2580 "sleep", Signature(ArgTypes{UnsignedIntTy}, RetType{UnsignedIntTy}),
2590 "dirfd", Signature(ArgTypes{DirPtrTy}, RetType{IntTy}),
2599 "alarm", Signature(ArgTypes{UnsignedIntTy}, RetType{UnsignedIntTy}),
2606 "closedir", Signature(ArgTypes{DirPtrTy}, RetType{IntTy}),
2614 "strdup", Signature(ArgTypes{ConstCharPtrTy}, RetType{CharPtrTy}),
2620 Signature(ArgTypes{ConstCharPtrTy, SizeTy}, RetType{CharPtrTy}),
2628 "wcsdup", Signature(ArgTypes{ConstWchar_tPtrTy}, RetType{Wchar_tPtrTy}),
2633 "mkstemp", Signature(ArgTypes{CharPtrTy}, RetType{IntTy}),
2642 "mkdtemp", Signature(ArgTypes{CharPtrTy}, RetType{CharPtrTy}),
2651 "getcwd", Signature(ArgTypes{CharPtrTy, SizeTy}, RetType{CharPtrTy}),
2670 "mkdir", Signature(ArgTypes{ConstCharPtrTy, Mode_tTy}, RetType{IntTy}),
2679 Signature(ArgTypes{IntTy, ConstCharPtrTy, Mode_tTy}, RetType{IntTy}),
2691 Signature(ArgTypes{ConstCharPtrTy, Mode_tTy, Dev_tTy}, RetType{IntTy}),
2700 Signature(ArgTypes{IntTy, ConstCharPtrTy, Mode_tTy, Dev_tTy},
2710 "chmod", Signature(ArgTypes{ConstCharPtrTy, Mode_tTy}, RetType{IntTy}),
2719 Signature(ArgTypes{IntTy, ConstCharPtrTy, Mode_tTy, IntTy},
2729 "fchmod", Signature(ArgTypes{IntTy, Mode_tTy}, RetType{IntTy}),
2743 Signature(ArgTypes{IntTy, ConstCharPtrTy, Uid_tTy, Gid_tTy, IntTy},
2754 Signature(ArgTypes{ConstCharPtrTy, Uid_tTy, Gid_tTy}, RetType{IntTy}),
2763 Signature(ArgTypes{ConstCharPtrTy, Uid_tTy, Gid_tTy}, RetType{IntTy}),
2771 "fchown", Signature(ArgTypes{IntTy, Uid_tTy, Gid_tTy}, RetType{IntTy}),
2780 "rmdir", Signature(ArgTypes{ConstCharPtrTy}, RetType{IntTy}),
2788 "chdir", Signature(ArgTypes{ConstCharPtrTy}, RetType{IntTy}),
2797 Signature(ArgTypes{ConstCharPtrTy, ConstCharPtrTy}, RetType{IntTy}),
2808 Signature(ArgTypes{IntTy, ConstCharPtrTy, IntTy, ConstCharPtrTy, IntTy},
2820 "unlink", Signature(ArgTypes{ConstCharPtrTy}, RetType{IntTy}),
2829 Signature(ArgTypes{IntTy, ConstCharPtrTy, IntTy}, RetType{IntTy}),
2843 "fstat", Signature(ArgTypes{IntTy, StructStatPtrTy}, RetType{IntTy}),
2853 Signature(ArgTypes{ConstCharPtrRestrictTy, StructStatPtrRestrictTy},
2864 Signature(ArgTypes{ConstCharPtrRestrictTy, StructStatPtrRestrictTy},
2876 Signature(ArgTypes{IntTy, ConstCharPtrRestrictTy,
2888 "opendir", Signature(ArgTypes{ConstCharPtrTy}, RetType{DirPtrTy}),
2896 "fdopendir", Signature(ArgTypes{IntTy}, RetType{DirPtrTy}),
2905 "isatty", Signature(ArgTypes{IntTy}, RetType{IntTy}),
2914 "close", Signature(ArgTypes{IntTy}, RetType{IntTy}),
2923 Signature(ArgTypes{IntTy, IntTy}, RetType{LongTy}),
2930 "pathconf", Signature(ArgTypes{ConstCharPtrTy, IntTy}, RetType{LongTy}),
2935 "rewinddir", Signature(ArgTypes{DirPtrTy}, RetType{VoidTy}),
2940 "seekdir", Signature(ArgTypes{DirPtrTy, LongTy}, RetType{VoidTy}),
2945 "rand_r", Signature(ArgTypes{UnsignedIntPtrTy}, RetType{IntTy}),
2953 Signature(ArgTypes{VoidPtrTy, SizeTy, IntTy, IntTy, IntTy, Off_tTy},
2966 Signature(ArgTypes{VoidPtrTy, SizeTy, IntTy, IntTy, IntTy, Off64_tTy},
2975 "pipe", Signature(ArgTypes{IntPtrTy}, RetType{IntTy}),
2987 "lseek", Signature(ArgTypes{IntTy, Off_tTy, IntTy}, RetType{Off_tTy}),
2998 Signature(ArgTypes{ConstCharPtrRestrictTy, CharPtrRestrictTy, SizeTy},
3021 Signature(
3046 Signature(ArgTypes{IntTy, ConstCharPtrTy, IntTy, ConstCharPtrTy},
3062 Signature(ArgTypes{ConstCharPtrRestrictTy, CharPtrRestrictTy},
3074 Signature(ArgTypes{ConstCharPtrTy, CharPtrConstPtr}, RetType{IntTy}),
3082 Signature(ArgTypes{ConstCharPtrTy, CharPtrConstPtr}, RetType{IntTy}),
3090 Signature(ArgTypes{IntTy, CharPtrConstPtr, ConstCharPtrTy},
3117 // standardized signature will not match, thus we try to match with another
3118 // signature that has the joker Irrelevant type. We also remove those
3123 "socket", Signature(ArgTypes{IntTy, IntTy, IntTy}, RetType{IntTy}),
3139 Signature(ArgTypes{IntTy, StructSockaddrPtrRestrictTy,
3145 Signature(ArgTypes{IntTy, Irrelevant, Socklen_tPtrRestrictTy},
3153 Signature(ArgTypes{IntTy, ConstStructSockaddrPtrTy, Socklen_tTy},
3168 Signature(ArgTypes{IntTy, Irrelevant, Socklen_tTy}, RetType{IntTy}),
3181 Signature(ArgTypes{IntTy, StructSockaddrPtrRestrictTy,
3193 Signature(ArgTypes{IntTy, Irrelevant, Socklen_tPtrRestrictTy},
3205 Signature(ArgTypes{IntTy, StructSockaddrPtrRestrictTy,
3217 Signature(ArgTypes{IntTy, Irrelevant, Socklen_tPtrRestrictTy},
3229 Signature(ArgTypes{IntTy, ConstStructSockaddrPtrTy, Socklen_tTy},
3239 Signature(ArgTypes{IntTy, Irrelevant, Socklen_tTy}, RetType{IntTy}),
3264 Signature(ArgTypes{IntTy, VoidPtrRestrictTy, SizeTy, IntTy,
3271 Signature(ArgTypes{IntTy, VoidPtrRestrictTy, SizeTy, IntTy,
3293 Signature(ArgTypes{IntTy, ConstVoidPtrTy, SizeTy, IntTy,
3299 Signature(ArgTypes{IntTy, ConstVoidPtrTy, SizeTy, IntTy, Irrelevant,
3306 "listen", Signature(ArgTypes{IntTy, IntTy}, RetType{IntTy}),
3316 Signature(ArgTypes{IntTy, VoidPtrTy, SizeTy, IntTy},
3338 Signature(ArgTypes{IntTy, StructMsghdrPtrTy, IntTy},
3350 Signature(ArgTypes{IntTy, ConstStructMsghdrPtrTy, IntTy},
3363 Signature(ArgTypes{IntTy, IntTy, IntTy, ConstVoidPtrTy, Socklen_tTy},
3379 Signature(ArgTypes{IntTy, IntTy, IntTy, VoidPtrRestrictTy,
3391 Signature(ArgTypes{IntTy, ConstVoidPtrTy, SizeTy, IntTy},
3408 Signature(ArgTypes{IntTy, IntTy, IntTy, IntPtrTy}, RetType{IntTy}),
3416 "shutdown", Signature(ArgTypes{IntTy, IntTy}, RetType{IntTy}),
3432 Signature(ArgTypes{ConstStructSockaddrPtrRestrictTy, Socklen_tTy,
3456 Signature(ArgTypes{ConstCharPtrTy, StructUtimbufPtrTy}, RetType{IntTy}),
3471 Signature(ArgTypes{IntTy, ConstStructTimespecPtrTy}, RetType{IntTy}),
3482 Signature(
3497 Signature(ArgTypes{ConstCharPtrTy, ConstStructTimevalPtrTy},
3507 Signature(ArgTypes{ConstStructTimespecPtrTy, StructTimespecPtrTy},
3532 Signature(ArgTypes{ConstTime_tPtrTy}, RetType{StructTmPtrTy}),
3539 Signature(ArgTypes{ConstTime_tPtrRestrictTy, StructTmPtrRestrictTy},
3548 Signature(ArgTypes{ConstStructTmPtrRestrictTy, CharPtrRestrictTy},
3559 Signature(ArgTypes{ConstTime_tPtrTy, CharPtrTy}, RetType{CharPtrTy}),
3571 Signature(ArgTypes{ConstTime_tPtrRestrictTy, StructTmPtrRestrictTy},
3579 "gmtime", Signature(ArgTypes{ConstTime_tPtrTy}, RetType{StructTmPtrTy}),
3587 Signature(ArgTypes{Clockid_tTy, StructTimespecPtrTy}, RetType{IntTy}),
3600 Signature(ArgTypes{IntTy, StructItimervalPtrTy}, RetType{IntTy}),
3640 Signature(ArgTypes{Pthread_cond_tPtrTy}, RetType{IntTy}),
3648 Signature(ArgTypes{Pthread_tPtrRestrictTy,
3660 Signature(ArgTypes{Pthread_attr_tPtrTy}, RetType{IntTy}),
3669 Signature(ArgTypes{ConstPthread_attr_tPtrRestrictTy, SizePtrRestrictTy},
3679 Signature(ArgTypes{Pthread_attr_tPtrTy, SizeTy}, RetType{IntTy}),
3689 Signature(ArgTypes{Pthread_mutex_tPtrRestrictTy,
3701 Signature(ArgTypes{Pthread_mutex_tPtrTy}, RetType{IntTy}),
3710 "__not_null", Signature(ArgTypes{IntPtrTy}, RetType{IntTy}),
3715 Signature(ArgTypes{VoidPtrTy, IntTy, IntTy}, RetType{IntTy}),
3721 "__single_val_0", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3725 "__single_val_1", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3729 "__range_1_2", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3733 "__range_m1_1", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3737 "__range_m2_m1", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3741 "__range_m10_10", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3745 Signature(ArgTypes{IntTy}, RetType{IntTy}),
3750 Signature(ArgTypes{IntTy}, RetType{IntTy}),
3755 Signature(ArgTypes{IntTy}, RetType{IntTy}),
3760 Signature(ArgTypes{IntTy}, RetType{IntTy}),
3765 Signature(ArgTypes{IntTy}, RetType{IntTy}),
3770 Signature(ArgTypes{IntTy}, RetType{IntTy}),
3775 Signature(ArgTypes{IntTy}, RetType{IntTy}),
3780 "__range_1_2__4_inf", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3787 "__single_val_out_0", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3791 "__single_val_out_1", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3795 "__range_out_1_2", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3799 "__range_out_m1_1", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3803 "__range_out_m2_m1", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3807 "__range_out_m10_10", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3811 Signature(ArgTypes{IntTy}, RetType{IntTy}),
3816 Signature(ArgTypes{IntTy}, RetType{IntTy}),
3821 Signature(ArgTypes{IntTy}, RetType{IntTy}),
3826 Signature(ArgTypes{IntTy}, RetType{IntTy}),
3831 Signature(ArgTypes{IntTy}, RetType{IntTy}),
3836 Signature(ArgTypes{IntTy}, RetType{IntTy}),
3841 Signature(ArgTypes{IntTy}, RetType{IntTy}),
3846 "__range_out_1_2__4_inf", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3853 "__within", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3857 "__out_of", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3863 Signature(ArgTypes{IntTy, IntTy}, RetType{IntTy}),
3868 "__arg_constrained_twice", Signature(ArgTypes{IntTy}, RetType{IntTy}),
3874 Signature(ArgTypes{Irrelevant, IntTy}, RetType{IntTy}),
3878 Signature(ArgTypes{VoidPtrTy, ConstCharPtrTy}, RetType{IntTy}),
3884 Signature(ArgTypes{ConstVoidPtrTy, SizeTy}, RetType{IntTy}),
3890 Signature(ArgTypes{ConstVoidPtrTy, SizeTy, SizeTy}, RetType{IntTy}),
3896 Signature(ArgTypes{ConstVoidPtrTy}, RetType{IntTy}),
3903 Signature(ArgTypes{VoidPtrRestrictTy}, RetType{VoidTy}),
3908 "__test_case_note", Signature(ArgTypes{}, RetType{IntTy}),
3916 Signature(ArgTypes{IntTy}, RetType{IntTy}),