Home | History | Annotate | Download | only in Sema
      1 // RUN: %clang_cc1 -triple powerpc64-unknown-linux-gnu -emit-llvm < %s | FileCheck %s
      2 
      3 int isalnum(int);
      4 int isalpha(int);
      5 int isblank(int);
      6 int iscntrl(int);
      7 int isdigit(int);
      8 int isgraph(int);
      9 int islower(int);
     10 int isprint(int);
     11 int ispunct(int);
     12 int isspace(int);
     13 int isupper(int);
     14 int isxdigit(int);
     15 int tolower(int);
     16 int toupper(int);
     17 
     18 void test(int x) {
     19   // CHECK: call signext i32 @isalnum(i32 signext {{%[0-9]+}}) [[NUW_RO_CALL:#[0-9]+]]
     20   (void)isalnum(x);
     21   // CHECK: call signext i32 @isalpha(i32 signext {{%[0-9]+}}) [[NUW_RO_CALL:#[0-9]+]]
     22   (void)isalpha(x);
     23   // CHECK: call signext i32 @isblank(i32 signext {{%[0-9]+}}) [[NUW_RO_CALL:#[0-9]+]]
     24   (void)isblank(x);
     25   // CHECK: call signext i32 @iscntrl(i32 signext {{%[0-9]+}}) [[NUW_RO_CALL:#[0-9]+]]
     26   (void)iscntrl(x);
     27   // CHECK: call signext i32 @isdigit(i32 signext {{%[0-9]+}}) [[NUW_RO_CALL:#[0-9]+]]
     28   (void)isdigit(x);
     29   // CHECK: call signext i32 @isgraph(i32 signext {{%[0-9]+}}) [[NUW_RO_CALL:#[0-9]+]]
     30   (void)isgraph(x);
     31   // CHECK: call signext i32 @islower(i32 signext {{%[0-9]+}}) [[NUW_RO_CALL:#[0-9]+]]
     32   (void)islower(x);
     33   // CHECK: call signext i32 @isprint(i32 signext {{%[0-9]+}}) [[NUW_RO_CALL:#[0-9]+]]
     34   (void)isprint(x);
     35   // CHECK: call signext i32 @ispunct(i32 signext {{%[0-9]+}}) [[NUW_RO_CALL:#[0-9]+]]
     36   (void)ispunct(x);
     37   // CHECK: call signext i32 @isspace(i32 signext {{%[0-9]+}}) [[NUW_RO_CALL:#[0-9]+]]
     38   (void)isspace(x);
     39   // CHECK: call signext i32 @isupper(i32 signext {{%[0-9]+}}) [[NUW_RO_CALL:#[0-9]+]]
     40   (void)isupper(x);
     41   // CHECK: call signext i32 @isxdigit(i32 signext {{%[0-9]+}}) [[NUW_RO_CALL:#[0-9]+]]
     42   (void)isxdigit(x);
     43   // CHECK: call signext i32 @tolower(i32 signext {{%[0-9]+}}) [[NUW_RO_CALL:#[0-9]+]]
     44   (void)tolower(x);
     45   // CHECK: call signext i32 @toupper(i32 signext {{%[0-9]+}}) [[NUW_RO_CALL:#[0-9]+]]
     46   (void)toupper(x);
     47 }
     48 
     49 // CHECK: declare signext i32 @isalnum(i32 signext) [[NUW_RO:#[0-9]+]]
     50 // CHECK: declare signext i32 @isalpha(i32 signext) [[NUW_RO:#[0-9]+]]
     51 // CHECK: declare signext i32 @isblank(i32 signext) [[NUW_RO:#[0-9]+]]
     52 // CHECK: declare signext i32 @iscntrl(i32 signext) [[NUW_RO:#[0-9]+]]
     53 // CHECK: declare signext i32 @isdigit(i32 signext) [[NUW_RO:#[0-9]+]]
     54 // CHECK: declare signext i32 @isgraph(i32 signext) [[NUW_RO:#[0-9]+]]
     55 // CHECK: declare signext i32 @islower(i32 signext) [[NUW_RO:#[0-9]+]]
     56 // CHECK: declare signext i32 @isprint(i32 signext) [[NUW_RO:#[0-9]+]]
     57 // CHECK: declare signext i32 @ispunct(i32 signext) [[NUW_RO:#[0-9]+]]
     58 // CHECK: declare signext i32 @isspace(i32 signext) [[NUW_RO:#[0-9]+]]
     59 // CHECK: declare signext i32 @isupper(i32 signext) [[NUW_RO:#[0-9]+]]
     60 // CHECK: declare signext i32 @isxdigit(i32 signext) [[NUW_RO:#[0-9]+]]
     61 // CHECK: declare signext i32 @tolower(i32 signext) [[NUW_RO:#[0-9]+]]
     62 // CHECK: declare signext i32 @toupper(i32 signext) [[NUW_RO:#[0-9]+]]
     63 
     64 // CHECK: attributes [[NUW_RO]] = { nounwind readonly{{.*}} }
     65 // CHECK: attributes [[NUW_RO_CALL]] = { nounwind readonly }
     66