brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 8b055a9 Raw
55 lines · cpp
1// RUN: %clang_cc1 --std=c++17 -emit-llvm %s -o - -triple x86_64-unknown-linux-gnu | FileCheck %s2 3struct non_trivial_constructor {4    constexpr non_trivial_constructor() : x(100) { }5    int x;6};7 8union UnionInt {9    int a{1000};10    non_trivial_constructor b;11};12 13union UnionNonTrivial {14    int a;15    non_trivial_constructor b{};16};17 18struct Handle {19    Handle(int) {}20};21 22union UnionNonTrivialEqualInit {23    int NoState = 0;24    Handle CustomState;25};26 27void f() {28    UnionInt u1;29    UnionNonTrivial u2;30    UnionNonTrivialEqualInit u3;31}32 33// CHECK:      define dso_local void @_Z1fv()34// CHECK:        call void @_ZN8UnionIntC1Ev35// CHECK-NEXT:   call void @_ZN15UnionNonTrivialC1Ev36// CHECK-NEXT:   call void @_ZN24UnionNonTrivialEqualInitC1Ev37 38// CHECK:      define {{.*}}void @_ZN8UnionIntC1Ev39// CHECK:        call void @_ZN8UnionIntC2Ev40 41// CHECK:      define {{.*}}void @_ZN15UnionNonTrivialC1Ev42// CHECK:        call void @_ZN15UnionNonTrivialC2Ev43 44// CHECK:      define {{.*}}void @_ZN24UnionNonTrivialEqualInitC1Ev45// CHECK:        call void @_ZN24UnionNonTrivialEqualInitC2Ev46 47// CHECK:      define {{.*}}void @_ZN8UnionIntC2Ev48// CHECK:        store i32 100049 50// CHECK:      define {{.*}}void @_ZN15UnionNonTrivialC2Ev51// CHECK:        call void @_ZN23non_trivial_constructorC1Ev52 53// CHECK:      define {{.*}}void @_ZN24UnionNonTrivialEqualInitC2Ev54// CHECK:        store i32 055