Mercurial > hg > CbC > CbC_llvm
view clang/test/CodeGenCXX/target-features-error.cpp @ 173:0572611fdcc8 llvm10 llvm12
reorgnization done
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 11:55:54 +0900 |
parents | 1d019706d866 |
children | c4bab56944e8 |
line wrap: on
line source
// RUN: %clang_cc1 %s -triple=x86_64-linux-gnu -S -verify -o - -DTEST1 // RUN: %clang_cc1 %s -triple=x86_64-linux-gnu -S -verify -o - -DTEST2 // RUN: %clang_cc1 %s -triple=x86_64-linux-gnu -S -verify -o - -DTEST3 // RUN: %clang_cc1 %s -triple=x86_64-linux-gnu -S -verify -o - -DTEST4 struct S { __attribute__((always_inline, target("avx512f"))) void foo(){} __attribute__((always_inline, target("avx512f"))) operator int(){ return 0; } __attribute__((always_inline, target("avx512f"))) void operator()(){ } }; __attribute__((always_inline, target("avx512f"))) void free_func(){} #ifdef TEST1 void usage(S & s) { s.foo(); // expected-error {{'foo' requires target feature 'avx512f'}} (void)(int)s; // expected-error {{'operator int' requires target feature 'avx512f'}} s(); // expected-error {{'operator()' requires target feature 'avx512f'}} free_func(); // expected-error{{'free_func' requires target feature 'avx512f'}} } #endif #ifdef TEST2 __attribute__((target("avx512f"))) void usage(S & s) { s.foo(); (void)(int)s; s(); [&s] { s.foo(); // expected-error {{'foo' requires target feature 'avx512f'}} (void)(int) s; // expected-error {{'operator int' requires target feature 'avx512f'}} s(); // expected-error {{'operator()' requires target feature 'avx512f'}} free_func(); // expected-error{{'free_func' requires target feature 'avx512f'}} }(); } #endif #ifdef TEST3 void usage(S & s) { [&s] () __attribute__((target("avx512f"))) { s.foo(); (void)(int) s; s(); free_func(); }(); [&s] { s.foo(); // expected-error {{'foo' requires target feature 'avx512f'}} (void)(int) s; // expected-error {{'operator int' requires target feature 'avx512f'}} s(); // expected-error {{'operator()' requires target feature 'avx512f'}} free_func(); // expected-error{{'free_func' requires target feature 'avx512f'}} }(); } #endif #ifdef TEST4 namespace PR45468 { struct CtorAndDTor { __attribute__((always_inline, target("avx512f"))) CtorAndDTor(); __attribute__((always_inline, target("avx512f"))) ~CtorAndDTor(); }; void usage() { //expected-error@+1{{'CtorAndDTor' requires target feature 'avx512f'}} CtorAndDTor c; { //expected-error@+1{{'CtorAndDTor' requires target feature 'avx512f'}} CtorAndDTor c2; //expected-error@+1{{'~CtorAndDTor' requires target feature 'avx512f'}} c2.~CtorAndDTor(); } // FIXME: These need to be given a line number, however theres no good way // to get to the SourceLocation of anything by the time we're doing CodeGen // cleanups. //expected-error@*{{'~CtorAndDTor' requires target feature 'avx512f'}} //expected-error@*{{'~CtorAndDTor' requires target feature 'avx512f'}} } } #endif