forked from OSchip/llvm-project
58 lines
1.1 KiB
C++
58 lines
1.1 KiB
C++
// Test check that processing headers as C++20 units allows #pragma once.
|
|
|
|
// RUN: rm -rf %t
|
|
// RUN: mkdir -p %t
|
|
// RUN: split-file %s %t
|
|
// RUN: cd %t
|
|
|
|
// RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header hu-01.h \
|
|
// RUN: -Werror -o hu-01.pcm
|
|
|
|
// RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header hu-02.h \
|
|
// RUN: -fmodule-file=%t/hu-01.pcm -o hu-02.pcm
|
|
|
|
// RUN: %clang_cc1 -std=c++20 -fsyntax-only imports-01.cpp \
|
|
// RUN: -fmodule-file=%t/hu-01.pcm
|
|
|
|
// RUN: %clang_cc1 -std=c++20 -fsyntax-only imports-02.cpp \
|
|
// RUN: -fmodule-file=%t/hu-02.pcm
|
|
|
|
// RUN: %clang_cc1 -std=c++20 -fsyntax-only imports-03.cpp \
|
|
// RUN: -fmodule-file=%t/hu-02.pcm
|
|
|
|
//--- hu-01.h
|
|
#pragma once
|
|
struct HU {
|
|
int a;
|
|
};
|
|
// expected-no-diagnostics
|
|
|
|
//--- hu-02.h
|
|
export import "hu-01.h";
|
|
// expected-no-diagnostics
|
|
|
|
//--- imports-01.cpp
|
|
import "hu-01.h";
|
|
|
|
HU foo(int x) {
|
|
return {x};
|
|
}
|
|
// expected-no-diagnostics
|
|
|
|
//--- imports-02.cpp
|
|
import "hu-02.h";
|
|
|
|
HU foo(int x) {
|
|
return {x};
|
|
}
|
|
// expected-no-diagnostics
|
|
|
|
//--- imports-03.cpp
|
|
import "hu-01.h";
|
|
import "hu-02.h";
|
|
|
|
HU foo(int x) {
|
|
return {x};
|
|
}
|
|
// expected-no-diagnostics
|