Mercurial > hg > CbC > CbC_llvm
view clang/test/Modules/cxx20-module-file-info-macros.cpp @ 266:00f31e85ec16 default tip
Added tag current for changeset 31d058e83c98
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 14 Oct 2023 10:13:55 +0900 |
parents | 1f2b6ac9f198 |
children |
line wrap: on
line source
// Test the output from -module-file-info about C++20 Modules // can reflect macros definitions correctly. // RUN: rm -rf %t // RUN: mkdir -p %t // RUN: split-file %s %t // // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header %t/foo.h -o %t/foo.pcm // RUN: %clang_cc1 -module-file-info %t/foo.pcm | FileCheck %t/foo.h // // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header %t/include_foo.h -o %t/include_foo.pcm // RUN: %clang_cc1 -module-file-info %t/include_foo.pcm | FileCheck %t/include_foo.h // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header -fmodule-file=%t/foo.pcm \ // RUN: %t/import_foo.h -o %t/import_foo.pcm // RUN: %clang_cc1 -module-file-info %t/import_foo.pcm | FileCheck %t/import_foo.h // // RUN: %clang_cc1 -std=c++20 %t/named_module.cppm -emit-module-interface -o %t/M.pcm // RUN: %clang_cc1 -module-file-info %t/M.pcm | FileCheck %t/named_module.cppm //--- foo.h #pragma once #define FOO #define CONSTANT 43 #define FUNC_Macro(X) (X+1) #define TO_BE_UNDEF #undef TO_BE_UNDEF #ifndef FOO #define CONDITIONAL_DEF #endif #define REDEFINE #define REDEFINE // CHECK: Macro Definitions: // CHECK-DAG: REDEFINE // CHECK-DAG: FUNC_Macro // CHECK-DAG: CONSTANT // CHECK-DAG: FOO // CHECK-NEXT: === //--- include_foo.h #include "foo.h" #undef REDEFINE // CHECK: Macro Definitions: // CHECK-DAG: CONSTANT // CHECK-DAG: FUNC_Macro // CHECK-DAG: FOO // CHECK-NEXT: === //--- import_foo.h import "foo.h"; #undef REDEFINE // CHECK: Macro Definitions: // CHECK-DAG: CONSTANT // CHECK-DAG: FUNC_Macro // CHECK-DAG: FOO // CHECK-NEXT: === //--- named_module.cppm module; #include "foo.h" export module M; #define M_Module 43 // CHECK-NOT: Macro Definitions: