1f08c3bdfSopenharmony_civoid f00(int _Atomic dst); 2f08c3bdfSopenharmony_civoid f01(int _Atomic *dst); 3f08c3bdfSopenharmony_civoid f02(int _Atomic *dst); 4f08c3bdfSopenharmony_civoid f03(int _Atomic *dst); 5f08c3bdfSopenharmony_ci 6f08c3bdfSopenharmony_ciint _Atomic qo; 7f08c3bdfSopenharmony_ciint uo; 8f08c3bdfSopenharmony_ci 9f08c3bdfSopenharmony_civoid f00(int dst) { } /* check-should-fail */ 10f08c3bdfSopenharmony_civoid f01(typeof(&qo) dst) { } /* check-should-pass */ 11f08c3bdfSopenharmony_civoid f02(int *dst) { } /* check-should-fail */ 12f08c3bdfSopenharmony_civoid f03(typeof(&uo) dst) { } /* check-should-fail */ 13f08c3bdfSopenharmony_ci 14f08c3bdfSopenharmony_civoid foo(void) 15f08c3bdfSopenharmony_ci{ 16f08c3bdfSopenharmony_ci qo = uo; /* check-should-pass */ 17f08c3bdfSopenharmony_ci uo = qo; /* check-should-pass */ 18f08c3bdfSopenharmony_ci} 19f08c3bdfSopenharmony_ci 20f08c3bdfSopenharmony_civoid ref(void) 21f08c3bdfSopenharmony_ci{ 22f08c3bdfSopenharmony_ci const int qo; 23f08c3bdfSopenharmony_ci int uo; 24f08c3bdfSopenharmony_ci const int *pqo; 25f08c3bdfSopenharmony_ci int *puo; 26f08c3bdfSopenharmony_ci 27f08c3bdfSopenharmony_ci pqo = &qo; /* check-should-pass */ 28f08c3bdfSopenharmony_ci pqo = &uo; /* check-should-pass */ 29f08c3bdfSopenharmony_ci pqo = puo; /* check-should-pass */ 30f08c3bdfSopenharmony_ci 31f08c3bdfSopenharmony_ci puo = &uo; /* check-should-pass */ 32f08c3bdfSopenharmony_ci 33f08c3bdfSopenharmony_ci puo = &qo; /* check-should-fail */ 34f08c3bdfSopenharmony_ci puo = pqo; /* check-should-fail */ 35f08c3bdfSopenharmony_ci} 36f08c3bdfSopenharmony_ci 37f08c3bdfSopenharmony_civoid bar(void) 38f08c3bdfSopenharmony_ci{ 39f08c3bdfSopenharmony_ci int _Atomic *pqo; 40f08c3bdfSopenharmony_ci int *puo; 41f08c3bdfSopenharmony_ci 42f08c3bdfSopenharmony_ci pqo = &qo; /* check-should-pass */ 43f08c3bdfSopenharmony_ci pqo = &uo; /* check-should-fail */ 44f08c3bdfSopenharmony_ci pqo = puo; /* check-should-fail */ 45f08c3bdfSopenharmony_ci 46f08c3bdfSopenharmony_ci puo = &uo; /* check-should-pass */ 47f08c3bdfSopenharmony_ci 48f08c3bdfSopenharmony_ci puo = &qo; /* check-should-fail */ 49f08c3bdfSopenharmony_ci puo = pqo; /* check-should-fail */ 50f08c3bdfSopenharmony_ci} 51f08c3bdfSopenharmony_ci 52f08c3bdfSopenharmony_civoid baz(void) 53f08c3bdfSopenharmony_ci{ 54f08c3bdfSopenharmony_ci typeof(&qo) pqo; 55f08c3bdfSopenharmony_ci typeof(&uo) puo; 56f08c3bdfSopenharmony_ci 57f08c3bdfSopenharmony_ci pqo = &qo; /* check-should-pass */ 58f08c3bdfSopenharmony_ci pqo = &uo; /* check-should-fail*/ 59f08c3bdfSopenharmony_ci pqo = puo; /* check-should-fail */ 60f08c3bdfSopenharmony_ci 61f08c3bdfSopenharmony_ci puo = &uo; /* check-should-pass */ 62f08c3bdfSopenharmony_ci 63f08c3bdfSopenharmony_ci puo = &qo; /* check-should-fail */ 64f08c3bdfSopenharmony_ci puo = pqo; /* check-should-fail */ 65f08c3bdfSopenharmony_ci} 66f08c3bdfSopenharmony_ci 67f08c3bdfSopenharmony_ci/* 68f08c3bdfSopenharmony_ci * check-name: C11 _Atomic type qualifier 69f08c3bdfSopenharmony_ci * check-command: sparse -Wno-decl $file 70f08c3bdfSopenharmony_ci * 71f08c3bdfSopenharmony_ci * check-error-start 72f08c3bdfSopenharmony_cic11-atomic.c:9:6: error: symbol 'f00' redeclared with different type (incompatible argument 1 (different modifiers)): 73f08c3bdfSopenharmony_cic11-atomic.c:9:6: void extern [addressable] [toplevel] f00( ... ) 74f08c3bdfSopenharmony_cic11-atomic.c:1:6: note: previously declared as: 75f08c3bdfSopenharmony_cic11-atomic.c:1:6: void extern [addressable] [toplevel] f00( ... ) 76f08c3bdfSopenharmony_cic11-atomic.c:11:6: error: symbol 'f02' redeclared with different type (incompatible argument 1 (different modifiers)): 77f08c3bdfSopenharmony_cic11-atomic.c:11:6: void extern [addressable] [toplevel] f02( ... ) 78f08c3bdfSopenharmony_cic11-atomic.c:3:6: note: previously declared as: 79f08c3bdfSopenharmony_cic11-atomic.c:3:6: void extern [addressable] [toplevel] f02( ... ) 80f08c3bdfSopenharmony_cic11-atomic.c:12:6: error: symbol 'f03' redeclared with different type (incompatible argument 1 (different modifiers)): 81f08c3bdfSopenharmony_cic11-atomic.c:12:6: void extern [addressable] [toplevel] f03( ... ) 82f08c3bdfSopenharmony_cic11-atomic.c:4:6: note: previously declared as: 83f08c3bdfSopenharmony_cic11-atomic.c:4:6: void extern [addressable] [toplevel] f03( ... ) 84f08c3bdfSopenharmony_cic11-atomic.c:33:13: warning: incorrect type in assignment (different modifiers) 85f08c3bdfSopenharmony_cic11-atomic.c:33:13: expected int *[assigned] puo 86f08c3bdfSopenharmony_cic11-atomic.c:33:13: got int const * 87f08c3bdfSopenharmony_cic11-atomic.c:34:13: warning: incorrect type in assignment (different modifiers) 88f08c3bdfSopenharmony_cic11-atomic.c:34:13: expected int *[assigned] puo 89f08c3bdfSopenharmony_cic11-atomic.c:34:13: got int const *[assigned] pqo 90f08c3bdfSopenharmony_cic11-atomic.c:43:13: warning: incorrect type in assignment (different modifiers) 91f08c3bdfSopenharmony_cic11-atomic.c:43:13: expected int [atomic] *[assigned] pqo 92f08c3bdfSopenharmony_cic11-atomic.c:43:13: got int * 93f08c3bdfSopenharmony_cic11-atomic.c:44:13: warning: incorrect type in assignment (different modifiers) 94f08c3bdfSopenharmony_cic11-atomic.c:44:13: expected int [atomic] *[assigned] pqo 95f08c3bdfSopenharmony_cic11-atomic.c:44:13: got int *puo 96f08c3bdfSopenharmony_cic11-atomic.c:48:13: warning: incorrect type in assignment (different modifiers) 97f08c3bdfSopenharmony_cic11-atomic.c:48:13: expected int *[assigned] puo 98f08c3bdfSopenharmony_cic11-atomic.c:48:13: got int [atomic] * 99f08c3bdfSopenharmony_cic11-atomic.c:49:13: warning: incorrect type in assignment (different modifiers) 100f08c3bdfSopenharmony_cic11-atomic.c:49:13: expected int *[assigned] puo 101f08c3bdfSopenharmony_cic11-atomic.c:49:13: got int [atomic] *[assigned] pqo 102f08c3bdfSopenharmony_cic11-atomic.c:58:13: warning: incorrect type in assignment (different modifiers) 103f08c3bdfSopenharmony_cic11-atomic.c:58:13: expected int [atomic] *[assigned] pqo 104f08c3bdfSopenharmony_cic11-atomic.c:58:13: got int * 105f08c3bdfSopenharmony_cic11-atomic.c:59:13: warning: incorrect type in assignment (different modifiers) 106f08c3bdfSopenharmony_cic11-atomic.c:59:13: expected int [atomic] *[assigned] pqo 107f08c3bdfSopenharmony_cic11-atomic.c:59:13: got int *puo 108f08c3bdfSopenharmony_cic11-atomic.c:63:13: warning: incorrect type in assignment (different modifiers) 109f08c3bdfSopenharmony_cic11-atomic.c:63:13: expected int *[assigned] puo 110f08c3bdfSopenharmony_cic11-atomic.c:63:13: got int [atomic] * 111f08c3bdfSopenharmony_cic11-atomic.c:64:13: warning: incorrect type in assignment (different modifiers) 112f08c3bdfSopenharmony_cic11-atomic.c:64:13: expected int *[assigned] puo 113f08c3bdfSopenharmony_cic11-atomic.c:64:13: got int [atomic] *[assigned] pqo 114f08c3bdfSopenharmony_ci * check-error-end 115f08c3bdfSopenharmony_ci */ 116