| // REQUIRES: host-supports-jit, x86_64-linux |
| // UNSUPPORTED: system-aix |
| // |
| // RUN: rm -rf %t |
| // RUN: mkdir -p %t |
| // RUN: split-file %s %t |
| // |
| // RUN: %clang -std=c++20 %t/mod.cppm --precompile \ |
| // RUN: -o %t/mod.pcm --target=x86_64-linux-gnu |
| // RUN: %clang -fPIC %t/mod.pcm -c -o %t/mod.o --target=x86_64-linux-gnu |
| // RUN: %clang -nostdlib -fPIC -shared %t/mod.o -o %t/libmod.so --target=x86_64-linux-gnu |
| // |
| // RUN: cat %t/import.cpp | env LD_LIBRARY_PATH=%t:$LD_LIBRARY_PATH \ |
| // RUN: clang-repl -Xcc=-std=c++20 -Xcc=-fmodule-file=M=%t/mod.pcm \ |
| // RUN: -Xcc=--target=x86_64-linux-gnu | FileCheck %t/import.cpp |
| |
| //--- mod.cppm |
| export module M; |
| export const char* Hello() { |
| return "Hello Interpreter for Modules!"; |
| } |
| |
| //--- import.cpp |
| |
| %lib libmod.so |
| |
| import M; |
| |
| extern "C" int printf(const char *, ...); |
| printf("%s\n", Hello()); |
| |
| // CHECK: Hello Interpreter for Modules! |