Home | History | Annotate | Download | only in Sema
      1 // RUN: %clang_cc1 -ffreestanding -fsyntax-only -verify -triple aarch64 %s
      2 
      3 void string_literal(unsigned v) {
      4   __builtin_arm_wsr(0, v); // expected-error {{expression is not a string literal}}
      5 }
      6 
      7 void wsr_1(unsigned v) {
      8   __builtin_arm_wsr("sysreg", v);
      9 }
     10 
     11 void wsrp_1(void *v) {
     12   __builtin_arm_wsrp("sysreg", v);
     13 }
     14 
     15 void wsr64_1(unsigned long v) {
     16   __builtin_arm_wsr64("sysreg", v);
     17 }
     18 
     19 unsigned rsr_1() {
     20   return __builtin_arm_rsr("sysreg");
     21 }
     22 
     23 void *rsrp_1() {
     24   return __builtin_arm_rsrp("sysreg");
     25 }
     26 
     27 unsigned long rsr64_1() {
     28   return __builtin_arm_rsr64("sysreg");
     29 }
     30 
     31 void wsr_2(unsigned v) {
     32   __builtin_arm_wsr("0:1:2:3:4", v);
     33 }
     34 
     35 void wsrp_2(void *v) {
     36   __builtin_arm_wsrp("0:1:2:3:4", v);
     37 }
     38 
     39 void wsr64_2(unsigned long v) {
     40   __builtin_arm_wsr64("0:1:2:3:4", v);
     41 }
     42 
     43 unsigned rsr_2() {
     44   return __builtin_arm_rsr("0:1:2:3:4");
     45 }
     46 
     47 void *rsrp_2() {
     48   return __builtin_arm_rsrp("0:1:2:3:4");
     49 }
     50 
     51 unsigned long rsr64_2() {
     52   return __builtin_arm_rsr64("0:1:2:3:4");
     53 }
     54 
     55 void wsr_3(unsigned v) {
     56   __builtin_arm_wsr("0:1:2", v); //expected-error {{invalid special register for builtin}}
     57 }
     58 
     59 void wsrp_3(void *v) {
     60   __builtin_arm_wsrp("0:1:2", v); //expected-error {{invalid special register for builtin}}
     61 }
     62 
     63 void wsr64_3(unsigned long v) {
     64   __builtin_arm_wsr64("0:1:2", v); //expected-error {{invalid special register for builtin}}
     65 }
     66 
     67 unsigned rsr_3() {
     68   return __builtin_arm_rsr("0:1:2"); //expected-error {{invalid special register for builtin}}
     69 }
     70 
     71 void *rsrp_3() {
     72   return __builtin_arm_rsrp("0:1:2"); //expected-error {{invalid special register for builtin}}
     73 }
     74 
     75 unsigned long rsr64_3() {
     76   return __builtin_arm_rsr64("0:1:2"); //expected-error {{invalid special register for builtin}}
     77 }
     78