Home | History | Annotate | Download | only in SemaCXX

Lines Matching refs:ref

213   constexpr int ref() { // expected-error {{never produces a constant expression}}
269 template<typename T> constexpr T &ref(T &&r) { return r; }
273 static_assert(++ref(0) == 1, "");
274 static_assert(ref(0)++ == 0, "");
276 static_assert(--ref(0) == -1, "");
277 static_assert(ref(0)-- == 0, "");
280 constexpr int overflow_int_inc_1 = ref(0x7fffffff)++; // expected-error {{constant}} expected-note {{2147483648}}
281 constexpr int overflow_int_inc_1_ok = ref(0x7ffffffe)++;
282 constexpr int overflow_int_inc_2 = ++ref(0x7fffffff); // expected-error {{constant}} expected-note {{2147483648}}
283 constexpr int overflow_int_inc_2_ok = ++ref(0x7ffffffe);
286 static_assert(++ref<short>(0x7fff) == (int)0xffff8000u, "");
287 static_assert(--ref<short>(0x8000) == 0x7fff, "");
290 static_assert(++ref(false), ""); // expected-warning {{deprecated}}
291 static_assert(++ref(true), ""); // expected-warning {{deprecated}}
294 static_assert(++ref(&arr[0]) == &arr[1], "");
295 static_assert(++ref(&arr[9]) == &arr[10], "");
296 static_assert(++ref(&arr[10]) == &arr[11], ""); // expected-error {{constant}} expected-note {{cannot refer to element 11}}
297 static_assert(ref(&arr[0])++ == &arr[0], "");
298 static_assert(ref(&arr[10])++ == &arr[10], ""); // expected-error {{constant}} expected-note {{cannot refer to element 11}}
300 static_assert(--ref(&arr[10]) == &arr[9], "");
301 static_assert(--ref(&arr[1]) == &arr[0], "");
302 static_assert(--ref(&arr[0]) != &arr[0], ""); // expected-error {{constant}} expected-note {{cannot refer to element -1}}
303 static_assert(ref(&arr[1])-- == &arr[1], "");
304 static_assert(ref(&arr[0])-- == &arr[0], ""); // expected-error {{constant}} expected-note {{cannot refer to element -1}}
308 static_assert(++ref(&x) == &x + 1, "");
310 static_assert(++ref(0.0) == 1.0, "");
311 static_assert(ref(0.0)++ == 0.0, "");
313 static_assert(--ref(0.0) == -1.0, "");
314 static_assert(ref(0.0)-- == 0.0, "");
317 static_assert(++ref(1e100) == 1e100, "");
318 static_assert(--ref(1e100) == 1e100, "");
327 constexpr int vol = --ref<volatile int>(0); // expected-error {{constant}} expected-note {{decrement of volatile-qualified}}