comparison clang/test/Sema/vector-gcc-compat.cpp @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents 1d019706d866
children
comparison
equal deleted inserted replaced
173:0572611fdcc8 207:2e18cbf3894f
1 // RUN: %clang_cc1 %s -verify -fsyntax-only -Weverything -std=c++11 -triple x86_64-apple-darwin10 1 // RUN: %clang_cc1 %s -verify -fsyntax-only -Weverything -Wno-unused-but-set-variable -std=c++11 -triple x86_64-apple-darwin10
2 2
3 // Test the compatibility of clang++'s vector extensions with g++'s vector 3 // Test the compatibility of clang++'s vector extensions with g++'s vector
4 // extensions. In comparison to the extensions available in C, the !, ?:, && and 4 // extensions. In comparison to the extensions available in C, the !, ?:, && and
5 // || operators work on vector types. 5 // || operators work on vector types.
6 6
81 v2i64 v2i64_a = (v2i64){0, 1}; // expected-warning {{compound literals are a C99-specific feature}} 81 v2i64 v2i64_a = (v2i64){0, 1}; // expected-warning {{compound literals are a C99-specific feature}}
82 v2i64 v2i64_b = (v2i64){2, 1}; // expected-warning {{compound literals are a C99-specific feature}} 82 v2i64 v2i64_b = (v2i64){2, 1}; // expected-warning {{compound literals are a C99-specific feature}}
83 v2i64 v2i64_c = (v2i64){3, 1}; // expected-warning {{compound literals are a C99-specific feature}} 83 v2i64 v2i64_c = (v2i64){3, 1}; // expected-warning {{compound literals are a C99-specific feature}}
84 v2i64 v2i64_r; 84 v2i64 v2i64_r;
85 85
86 v2i64_r = !v2i64_a; // expected-error {{invalid argument type 'v2i64' (vector of 2 'long long' values) to unary expression}} 86 v2i64_r = !v2i64_a;
87 v2i64_r = ~v2i64_a; 87 v2i64_r = ~v2i64_a;
88 88
89 v2i64_r = v2i64_a ? v2i64_b : v2i64_c; 89 v2i64_r = v2i64_a ? v2i64_b : v2i64_c;
90 90
91 v2i64_r = v2i64_a & 1; 91 v2i64_r = v2i64_a & 1;