blob: e1f52aedd0793588801aaf3237d9e7a5b8538096 [file] [edit]
// RUN: %clang_cc1 -E -fmodules %s -o - | FileCheck --check-prefix=CHECK-HAS-OBJC-MODULES %s
// RUN: %clang_cc1 -E %s -o - | FileCheck --check-prefix=CHECK-NO-OBJC-MODULES %s
// RUN: %clang_cc1 -E -x c -fmodules %s -o - | FileCheck --check-prefix=CHECK-NO-OBJC-MODULES %s
// RUN: %clang_cc1 -E -fmodules %s -o - | FileCheck --check-prefix=CHECK-HAS-MODULES %s
// RUN: %clang_cc1 -E %s -o - | FileCheck --check-prefix=CHECK-NO-MODULES %s
// RUN: %clang_cc1 -E -x c -fmodules %s -o - | FileCheck --check-prefix=CHECK-HAS-MODULES %s
// -std=c++20 enables C++ modules but not Clang modules, so __has_feature(modules)
// must only be set when -fmodules is also passed.
// RUN: %clang_cc1 -E -x c++ -std=c++20 %s -o - | FileCheck --check-prefix=CHECK-NO-MODULES %s
// RUN: %clang_cc1 -E -x c++ -std=c++20 -fmodules %s -o - | FileCheck --check-prefix=CHECK-HAS-MODULES %s
// RUN: %clang_cc1 -E -x objective-c++ -std=c++20 %s -o - | FileCheck --check-prefix=CHECK-NO-MODULES %s
#if __has_feature(modules)
int has_modules();
#else
int no_modules();
#endif
// CHECK-HAS-MODULES: has_modules
// CHECK-NO-MODULES: no_modules
#if __has_feature(objc_modules)
int has_objc_modules();
#else
int no_objc_modules();
#endif
// CHECK-HAS-OBJC-MODULES: has_objc_modules
// CHECK-NO-OBJC-MODULES: no_objc_modules