Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[clang] Produce a "multiversion" annotation in textual AST output.
This change adds a "multiversion" annotation to textual AST output. For example: FunctionDecl 0xb6628b0 <t.c:1:1, col:13> col:5 multiversion foo 'int (void)' Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D121961
- Loading branch information
1 parent
58c202a
commit 0cceee7
Showing
2 changed files
with
25 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
// Test without serialization: | ||
// RUN: %clang_cc1 -triple x86_64-pc-linux -ast-dump -ast-dump-filter Test %s \ | ||
// RUN: | FileCheck --strict-whitespace %s | ||
// | ||
// Test with serialization: | ||
// RUN: %clang_cc1 -triple x86_64-pc-linux -emit-pch -o %t %s | ||
// RUN: %clang_cc1 -x c -triple x86_64-pc-linux -include-pch %t \ | ||
// RUN: -ast-dump-all -ast-dump-filter Test /dev/null \ | ||
// RUN: | sed -e "s/ <undeserialized declarations>//" -e "s/ imported//" \ | ||
// RUN: | FileCheck --strict-whitespace %s | ||
|
||
void TestUnattributedMVF(void); | ||
// CHECK: FunctionDecl 0x{{[^ ]*}} <{{.*}}> col:{{[0-9]*}} multiversion TestUnattributedMVF | ||
__attribute__((target("default"))) void TestUnattributedMVF(void); | ||
// CHECK: FunctionDecl 0x{{[^ ]*}} prev 0x{{[^ ]*}} <{{.*}}> col:{{[0-9]*}} multiversion TestUnattributedMVF | ||
|
||
__attribute__((target("mmx"))) void TestNonMVF(void); | ||
// CHECK: FunctionDecl 0x{{[^ ]*}} <{{.*}}> col:{{[0-9]*}} TestNonMVF | ||
|
||
__attribute__((target("mmx"))) void TestRetroMVF(void); | ||
// CHECK: FunctionDecl 0x{{[^ ]*}} <{{.*}}> col:{{[0-9]*}} multiversion TestRetroMVF | ||
__attribute__((target("sse"))) void TestRetroMVF(void); | ||
// CHECK: FunctionDecl 0x{{[^ ]*}} <{{.*}}> col:{{[0-9]*}} multiversion TestRetroMVF |