Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/ext/vector39.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
line wrap: on
line source
// { dg-options "-flax-vector-conversions" } typedef unsigned char v16qi __attribute__((vector_size(16))); typedef unsigned int v4si __attribute__((vector_size(16))); extern v4si normal_v4si; extern const v4si const_v4si; extern v4si *normal_v4si_ptr; extern const v4si *const_v4si_ptr; extern v4si &normal_v4si_ref; extern const v4si &const_v4si_ref; extern v16qi normal_v16qi; extern const v16qi const_v16qi; extern v16qi *normal_v16qi_ptr; extern const v16qi *const_v16qi_ptr; extern v16qi &normal_v16qi_ref; extern const v16qi &const_v16qi_ref; namespace nonconst_refs { v16qi &ref_normal_v4si = normal_v4si; // { dg-error {cannot bind non-const lvalue} } v16qi &ref_const_v4si = const_v4si; // { dg-error {cannot bind non-const lvalue} } v16qi &ref_normal_v4si_ptr = *normal_v4si_ptr; // { dg-error {cannot bind non-const lvalue} } v16qi &ref_const_v4si_ptr = *const_v4si_ptr; // { dg-error {cannot bind non-const lvalue} } v16qi &ref_normal_v4si_ref = normal_v4si_ref; // { dg-error {cannot bind non-const lvalue} } v16qi &ref_const_v4si_ref = const_v4si_ref; // { dg-error {cannot bind non-const lvalue} } v16qi &ref_normal_v16qi = normal_v16qi; v16qi &ref_const_v16qi = const_v16qi; // { dg-error {discards qualifiers} } v16qi &ref_normal_v16qi_ptr = *normal_v16qi_ptr; v16qi &ref_const_v16qi_ptr = *const_v16qi_ptr; // { dg-error {discards qualifiers} } v16qi &ref_normal_v16qi_ref = normal_v16qi_ref; v16qi &ref_const_v16qi_ref = const_v16qi_ref; // { dg-error {discards qualifiers} } } #if __cplusplus >= 201103L namespace nonconst_rvalue_refs { v16qi &&ref_normal_v4si = normal_v4si; v16qi &&ref_const_v4si = const_v4si; v16qi &&ref_normal_v4si_ptr = *normal_v4si_ptr; v16qi &&ref_const_v4si_ptr = *const_v4si_ptr; v16qi &&ref_normal_v4si_ref = normal_v4si_ref; v16qi &&ref_const_v4si_ref = const_v4si_ref; v16qi &&ref_normal_v16qi = normal_v16qi; // { dg-error {cannot bind rvalue reference} "" { target c++11 } } v16qi &&ref_const_v16qi = const_v16qi; // { dg-error {cannot bind rvalue reference} "" { target c++11 } } v16qi &&ref_normal_v16qi_ptr = *normal_v16qi_ptr; // { dg-error {cannot bind rvalue reference} "" { target c++11 } } v16qi &&ref_const_v16qi_ptr = *const_v16qi_ptr; // { dg-error {cannot bind rvalue reference} "" { target c++11 } } v16qi &&ref_normal_v16qi_ref = normal_v16qi_ref; // { dg-error {cannot bind rvalue reference} "" { target c++11 } } v16qi &&ref_const_v16qi_ref = const_v16qi_ref; // { dg-error {cannot bind rvalue reference} "" { target c++11 } } } #endif namespace const_refs { const v16qi &ref_normal_v4si = normal_v4si; const v16qi &ref_const_v4si = const_v4si; const v16qi &ref_normal_v4si_ptr = *normal_v4si_ptr; const v16qi &ref_const_v4si_ptr = *const_v4si_ptr; const v16qi &ref_normal_v4si_ref = normal_v4si_ref; const v16qi &ref_const_v4si_ref = const_v4si_ref; const v16qi &ref_normal_v16qi = normal_v16qi; const v16qi &ref_const_v16qi = const_v16qi; const v16qi &ref_normal_v16qi_ptr = *normal_v16qi_ptr; const v16qi &ref_const_v16qi_ptr = *const_v16qi_ptr; const v16qi &ref_normal_v16qi_ref = normal_v16qi_ref; const v16qi &ref_const_v16qi_ref = const_v16qi_ref; } #if __cplusplus >= 201103L namespace const_rvalue_refs { const v16qi &&ref_normal_v4si = normal_v4si; const v16qi &&ref_const_v4si = const_v4si; const v16qi &&ref_normal_v4si_ptr = *normal_v4si_ptr; const v16qi &&ref_const_v4si_ptr = *const_v4si_ptr; const v16qi &&ref_normal_v4si_ref = normal_v4si_ref; const v16qi &&ref_const_v4si_ref = const_v4si_ref; const v16qi &&ref_normal_v16qi = normal_v16qi; // { dg-error {cannot bind rvalue reference} "" { target c++11 } } const v16qi &&ref_const_v16qi = const_v16qi; // { dg-error {cannot bind rvalue reference} "" { target c++11 } } const v16qi &&ref_normal_v16qi_ptr = *normal_v16qi_ptr; // { dg-error {cannot bind rvalue reference} "" { target c++11 } } const v16qi &&ref_const_v16qi_ptr = *const_v16qi_ptr; // { dg-error {cannot bind rvalue reference} "" { target c++11 } } const v16qi &&ref_normal_v16qi_ref = normal_v16qi_ref; // { dg-error {cannot bind rvalue reference} "" { target c++11 } } const v16qi &&ref_const_v16qi_ref = const_v16qi_ref; // { dg-error {cannot bind rvalue reference} "" { target c++11 } } } #endif namespace rvalue_reinterpret_refs { v16qi &ref_normal_v4si = reinterpret_cast<v16qi>(normal_v4si); // { dg-error {cannot bind non-const lvalue} } v16qi &ref_const_v4si = reinterpret_cast<v16qi>(const_v4si); // { dg-error {cannot bind non-const lvalue} } } namespace ref_reinterpret_refs { v16qi &ref_normal_v4si = reinterpret_cast<v16qi &>(normal_v4si); v16qi &ref_const_v4si = reinterpret_cast<v16qi &>(const_cast<v4si &>(const_v4si)); }