/*
* Test handling of the operator ':', as part of the '?:'.
*/
/* lint1-extra-flags: -p -X 351 */
struct canary {
int member;
};
void
sink(struct canary);
void
test_merge_qualifiers(_Bool cond, int *p, const int *c, volatile int *v,
const volatile int *cv)
{
/* expect+1: ... 'pointer to int' ... */
sink(cond ? p : p);
/* expect+1: ... 'pointer to const int' ... */
sink(cond ? p : c);
/* expect+1: ... 'pointer to volatile int' ... */
sink(cond ? p : v);
/* expect+1: ... 'pointer to const volatile int' ... */
sink(cond ? p : cv);
/* expect+1: ... 'pointer to const int' ... */
sink(cond ? c : p);
/* expect+1: ... 'pointer to const int' ... */
sink(cond ? c : c);
/* expect+1: ... 'pointer to const volatile int' ... */
sink(cond ? c : v);
/* expect+1: ... 'pointer to const volatile int' ... */
sink(cond ? c : cv);
/* expect+1: ... 'pointer to volatile int' ... */
sink(cond ? v : p);
/* expect+1: ... 'pointer to const volatile int' ... */
sink(cond ? v : c);
/* expect+1: ... 'pointer to volatile int' ... */
sink(cond ? v : v);
/* expect+1: ... 'pointer to const volatile int' ... */
sink(cond ? v : cv);
/* expect+1: ... 'pointer to const volatile int' ... */
sink(cond ? cv : p);
/* expect+1: ... 'pointer to const volatile int' ... */
sink(cond ? cv : c);
/* expect+1: ... 'pointer to const volatile int' ... */
sink(cond ? cv : v);
/* expect+1: ... 'pointer to const volatile int' ... */
sink(cond ? cv : cv);
}