"ftello", Signature(ArgTypes{FilePtrTy}, RetType{Off_tTy}),
Summary(NoEvalCall).ArgConstraint(NotNull(ArgNo(0))));
- Optional<RangeInt> Off_tMax = getMaxValue(Off_tTy);
// void *mmap(void *addr, size_t length, int prot, int flags, int fd,
// off_t offset);
addToFunctionSummaryMap(
Summary(NoEvalCall)
.ArgConstraint(ArgumentCondition(1, WithinRange, Range(1, SizeMax)))
.ArgConstraint(
- ArgumentCondition(4, WithinRange, Range(0, Off_tMax))));
+ ArgumentCondition(4, WithinRange, Range(0, IntMax))));
Optional<QualType> Off64_tTy = lookupTy("off64_t");
- Optional<RangeInt> Off64_tMax = getMaxValue(Off_tTy);
// void *mmap64(void *addr, size_t length, int prot, int flags, int fd,
// off64_t offset);
addToFunctionSummaryMap(
Summary(NoEvalCall)
.ArgConstraint(ArgumentCondition(1, WithinRange, Range(1, SizeMax)))
.ArgConstraint(
- ArgumentCondition(4, WithinRange, Range(0, Off64_tMax))));
+ ArgumentCondition(4, WithinRange, Range(0, IntMax))));
// int pipe(int fildes[2]);
addToFunctionSummaryMap(
--- /dev/null
+// RUN: %clang_analyze_cc1 \
+// RUN: -analyzer-checker=core,apiModeling.StdCLibraryFunctions \
+// RUN: -analyzer-config apiModeling.StdCLibraryFunctions:ModelPOSIX=true \
+// RUN: -verify %s
+//
+// expected-no-diagnostics
+
+typedef long off_t;
+typedef long long off64_t;
+typedef unsigned long size_t;
+
+void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
+void *mmap64(void *addr, size_t length, int prot, int flags, int fd, off64_t offset);
+
+void test(long len) {
+ mmap(0, len, 2, 1, 0, 0); // no-crash
+ mmap64(0, len, 2, 1, 0, 0); // no-crash
+}