Home | History | Annotate | Download | only in SemaCXX

Lines Matching refs:ref

211   constexpr int ref() { // expected-error {{never produces a constant expression}}
267 template<typename T> constexpr T &ref(T &&r) { return r; }
271 static_assert(++ref(0) == 1, "");
272 static_assert(ref(0)++ == 0, "");
274 static_assert(--ref(0) == -1, "");
275 static_assert(ref(0)-- == 0, "");
278 constexpr int overflow_int_inc_1 = ref(0x7fffffff)++; // expected-error {{constant}} expected-note {{2147483648}}
279 constexpr int overflow_int_inc_1_ok = ref(0x7ffffffe)++;
280 constexpr int overflow_int_inc_2 = ++ref(0x7fffffff); // expected-error {{constant}} expected-note {{2147483648}}
281 constexpr int overflow_int_inc_2_ok = ++ref(0x7ffffffe);
284 static_assert(++ref<short>(0x7fff) == (int)0xffff8000u, "");
285 static_assert(--ref<short>(0x8000) == 0x7fff, "");
288 static_assert(++ref(false), ""); // expected-warning {{deprecated}}
289 static_assert(++ref(true), ""); // expected-warning {{deprecated}}
292 static_assert(++ref(&arr[0]) == &arr[1], "");
293 static_assert(++ref(&arr[9]) == &arr[10], "");
294 static_assert(++ref(&arr[10]) == &arr[11], ""); // expected-error {{constant}} expected-note {{cannot refer to element 11}}
295 static_assert(ref(&arr[0])++ == &arr[0], "");
296 static_assert(ref(&arr[10])++ == &arr[10], ""); // expected-error {{constant}} expected-note {{cannot refer to element 11}}
298 static_assert(--ref(&arr[10]) == &arr[9], "");
299 static_assert(--ref(&arr[1]) == &arr[0], "");
300 static_assert(--ref(&arr[0]) != &arr[0], ""); // expected-error {{constant}} expected-note {{cannot refer to element -1}}
301 static_assert(ref(&arr[1])-- == &arr[1], "");
302 static_assert(ref(&arr[0])-- == &arr[0], ""); // expected-error {{constant}} expected-note {{cannot refer to element -1}}
306 static_assert(++ref(&x) == &x + 1, "");
308 static_assert(++ref(0.0) == 1.0, "");
309 static_assert(ref(0.0)++ == 0.0, "");
311 static_assert(--ref(0.0) == -1.0, "");
312 static_assert(ref(0.0)-- == 0.0, "");
315 static_assert(++ref(1e100) == 1e100, "");
316 static_assert(--ref(1e100) == 1e100, "");
325 constexpr int vol = --ref<volatile int>(0); // expected-error {{constant}} expected-note {{decrement of volatile-qualified}}