brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · be614b0 Raw
78 lines · plain
1// RUN: rm -rf %t2// RUN: mkdir -p %t3// RUN: split-file %s %t4//5// RUN: %clang_cc1 -std=c++20 %t/lambdas.cppm -emit-module-interface \6// RUN:    -o %t/lambdas.pcm7// RUN: %clang_cc1 -std=c++20 -fprebuilt-module-path=%t %t/Use.cpp -fsyntax-only \8// RUN:    -verify9//10// RUN: %clang_cc1 -std=c++20 %t/lambdas2.cppm -emit-module-interface \11// RUN:    -o %t/lambdas2.pcm12// RUN: %clang_cc1 -std=c++20 -fprebuilt-module-path=%t %t/Use.cpp -fsyntax-only \13// RUN:    -verify -DUSE_LAMBDA214//15// Test again with reduced BMI.16// RUN: rm -rf %t17// RUN: mkdir -p %t18// RUN: split-file %s %t19//20// RUN: %clang_cc1 -std=c++20 %t/lambdas.cppm -emit-reduced-module-interface \21// RUN:    -o %t/lambdas.pcm22// RUN: %clang_cc1 -std=c++20 -fprebuilt-module-path=%t %t/Use.cpp -fsyntax-only \23// RUN:    -verify24//25// RUN: %clang_cc1 -std=c++20 %t/lambdas2.cppm -emit-reduced-module-interface \26// RUN:    -o %t/lambdas2.pcm27// RUN: %clang_cc1 -std=c++20 -fprebuilt-module-path=%t %t/Use.cpp -fsyntax-only \28// RUN:    -verify -DUSE_LAMBDA229 30//--- lambdas.h31auto l1 = []() constexpr -> int {32    return 43;33};34// 35auto l2 = []() constexpr -> double {36    return 3.0;37};38// 39auto l3 = [](auto i) constexpr -> int {40  return int(i);41};42// 43auto l4 = [](auto i, auto u) constexpr -> int {44  return i + u;45};46 47//--- lambdas.cppm48module;49#include "lambdas.h"50export module lambdas;51export using ::l1;52export using ::l2;53export using ::l3;54export using ::l4;55 56//--- lambdas2.cppm57export module lambdas2;58export {59#include "lambdas.h"  60}61 62//--- Use.cpp63// expected-no-diagnostics64#ifndef USE_LAMBDA265import lambdas;66#else67import lambdas2;68#endif69 70static_assert(l1.operator()() == 43);71 72static_assert(l2.operator()() == 3.0);73 74static_assert(l3.operator()(8.4) == 8);75 76static_assert(l4(4, 12) == 16);77static_assert(l4(5, 20) == 25);78