32 lines · cpp
1// RUN: rm -rf %t2// RUN: split-file %s %t3// RUN: cd %t4 5// RUN: %clang_cc1 -std=c++20 -fopenmp -triple x86_64-unknown-linux-gnu %t/AssumeMod.cppm -emit-module-interface -o %t/AssumeMod.pcm6// RUN: %clang_cc1 -std=c++20 -fopenmp -triple x86_64-unknown-linux-gnu %t/UseAssumeMod.cpp -fmodule-file=AssumeMod=%t/AssumeMod.pcm -ast-dump-all | FileCheck %t/AssumeMod.cppm7 8// expected-no-diagnostics9 10//--- AssumeMod.cppm11module;12export module AssumeMod;13export int foo(int y) {14 int x = -1;15#pragma omp assume holds(y == 5)16// CHECK: OMPAssumeDirective 0x{{.*}} <line:5:1, col:33>17// CHECK-NEXT: OMPHoldsClause 0x{{.*}} <col:20, col:32>18 {19 x = y;20 }21 return x;22}23//--- UseAssumeMod.cpp24import AssumeMod;25 26extern "C" int printf(const char* fmt, ...);27 28int main() {29 printf ("foo(5)=%d\n", foo (5));30 return 0;31}32