1234567891011121314151617181920212223 |
- extern const int *p;
- extern volatile void *q;
- extern volatile int *r;
- static void f(void)
- {
- q = 1 ? p : q; // warn: const volatile void * -> const int *
- r = 1 ? r : q; // OK: volatile void * -> volatile int *
- r = 1 ? r : p; // warn: const volatile int * -> volatile int *
- }
- /*
- * check-name: type of conditional expression
- * check-description: Used to miss qualifier mixing and mishandle void *
- *
- * check-error-start
- cond_expr2.c:6:11: warning: incorrect type in assignment (different modifiers)
- cond_expr2.c:6:11: expected void volatile *extern [addressable] [toplevel] q
- cond_expr2.c:6:11: got void const volatile *
- cond_expr2.c:8:11: warning: incorrect type in assignment (different modifiers)
- cond_expr2.c:8:11: expected int volatile *extern [addressable] [assigned] [toplevel] r
- cond_expr2.c:8:11: got int const volatile *
- * check-error-end
- */
|