[AArch64][GlobalISel] Add disjoint handling for add_and_or_is_add. (#123594)
[llvm-project.git] / compiler-rt / test / sanitizer_common / TestCases / Posix / strtonum.cpp
bloba4f013096c5960a6725115f98c933fb12d0435b3
1 // RUN: %clangxx -O0 -g %s -o %t && %run %t 2>&1 | FileCheck %s
2 //
3 // UNSUPPORTED: darwin, target={{.*(linux|solaris).*}}
5 #define _OPENBSD_SOURCE
7 #include <assert.h>
8 #include <stdio.h>
9 #include <stdlib.h>
11 int main(void) {
12 const char *errstr;
14 printf("strtonum\n");
16 long long l = strtonum("100", 1, 100, &errstr);
17 assert(!errstr);
18 printf("%lld\n", l);
20 l = strtonum("200", 1, 100, &errstr);
21 assert(errstr);
22 printf("%s\n", errstr);
24 l = strtonum("300", 1000, 1001, &errstr);
25 assert(errstr);
26 printf("%s\n", errstr);
28 l = strtonum("abc", 1000, 1001, &errstr);
29 assert(errstr);
30 printf("%s\n", errstr);
32 l = strtonum("1000", 1001, 1000, &errstr);
33 assert(errstr);
34 printf("%s\n", errstr);
36 l = strtonum("1000abc", 1000, 1001, &errstr);
37 assert(errstr);
38 printf("%s\n", errstr);
40 l = strtonum("1000.0", 1000, 1001, &errstr);
41 assert(errstr);
42 printf("%s\n", errstr);
44 // CHECK: strtonum
45 // CHECK: 100
46 // CHECK: too large
47 // CHECK: too small
48 // CHECK: invalid
49 // CHECK: invalid
50 // CHECK: invalid
51 // CHECK: invalid
53 return 0;