annotate clang/test/Sema/attr-notail.c @ 222:81f6424ef0e3 llvm-original

LLVM original branch
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 18 Jul 2021 22:10:01 +0900
parents 1d019706d866
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
anatofuz
parents:
diff changeset
2
anatofuz
parents:
diff changeset
3 int callee0() __attribute__((not_tail_called,always_inline)); // expected-error{{'always_inline' and 'not_tail_called' attributes are not compatible}} \
anatofuz
parents:
diff changeset
4 // expected-note{{conflicting attribute is here}}
anatofuz
parents:
diff changeset
5 int callee1() __attribute__((always_inline,not_tail_called)); // expected-error{{'not_tail_called' and 'always_inline' attributes are not compatible}} \
anatofuz
parents:
diff changeset
6 // expected-note{{conflicting attribute is here}}
anatofuz
parents:
diff changeset
7
anatofuz
parents:
diff changeset
8 int foo(int a) {
anatofuz
parents:
diff changeset
9 return a ? callee0() : callee1();
anatofuz
parents:
diff changeset
10 }
anatofuz
parents:
diff changeset
11
anatofuz
parents:
diff changeset
12 int g0 __attribute__((not_tail_called)); // expected-warning {{'not_tail_called' attribute only applies to functions}}
anatofuz
parents:
diff changeset
13
anatofuz
parents:
diff changeset
14 int foo2(int a) __attribute__((not_tail_called("abc"))); // expected-error {{'not_tail_called' attribute takes no arguments}}