llvm-project

Форк
0
/
cxx-mangling.cpp 
28 строк · 752.0 Байт
1
// Test without PCH.
2
// RUN: %clang_cc1 -std=c++11 -triple %itanium_abi_triple -fcxx-exceptions -fexceptions -include %s %s -emit-llvm -o - | FileCheck %s
3
//
4
// Test with PCH.
5
// RUN: %clang_cc1 -std=c++11 -triple %itanium_abi_triple -fcxx-exceptions -fexceptions -x c++-header %s -emit-pch -o %t
6
// RUN: %clang_cc1 -std=c++11 -triple %itanium_abi_triple -fcxx-exceptions -fexceptions -include-pch %t %s -emit-llvm -o - | FileCheck %s
7

8
#ifndef HEADER
9
#define HEADER
10

11
struct A {
12
  struct { int a; } a;
13
  struct { int b; } b;
14
};
15

16
#else
17

18
template<typename T> void f(T) {}
19

20
// CHECK-LABEL: define {{.*}}void @_Z1g1A(
21
void g(A a) {
22
  // CHECK: call {{.*}}void @_Z1fIN1AUt0_EEvT_(
23
  f(a.b);
24
  // CHECK: call {{.*}}void @_Z1fIN1AUt_EEvT_(
25
  f(a.a);
26
}
27

28
#endif
29

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.