[AArch64][GlobalISel] Add disjoint handling for add_and_or_is_add. (#123594)
[llvm-project.git] / clang / test / Modules / vtable-windows.cppm
blobdbde24c8a9bdd2b366534a4a73e9b69255d7fbfa
1 // RUN: rm -rf %t
2 // RUN: mkdir %t
3 // RUN: split-file %s %t
4 //
5 // RUN: %clang_cc1 -std=c++20 -triple i686-pc-windows-msvc %t/foo.cppm -emit-module-interface \
6 // RUN:   -o %t/foo.pcm
7 // RUN: %clang_cc1 -std=c++20 -triple i686-pc-windows-msvc %t/user.cc -fmodule-file=foo=%t/foo.pcm \
8 // RUN:   -emit-llvm -o - -disable-llvm-passes | FileCheck %t/user.cc
10 //--- foo.cppm
11 export module foo;
12 export struct Fruit {
13     virtual ~Fruit() = default;
14     virtual void eval();
17 //--- user.cc
18 import foo;
19 void test() {
20   Fruit *f = new Fruit();
21   f->eval();
24 // Check that the virtual table is an unnamed_addr constant in comdat that can
25 // be merged with the virtual table with other TUs.
26 // CHECK: unnamed_addr constant {{.*}}[ptr @"??_R4Fruit@@6B@", ptr @"??_GFruit@@UAEPAXI@Z", ptr @"?eval@Fruit@@UAEXXZ"{{.*}}comdat($"??_7Fruit@@6B@")