
Closes https://github.com/llvm/llvm-project/issues/58199 Previously, when we act on a import statement, we'll assume there is a module declaration in the current TU if the command line tells us we're compiling a module unit. This makes since on valid codes. However, for invalid codes, it is possible. See https://github.com/llvm/llvm-project/issues/58199 for example. This patch removes the assertion. And the assertion is a noop and it should be safe to remove it.
14 lines
387 B
C++
14 lines
387 B
C++
// RUN: rm -rf %t
|
|
// RUN: split-file %s %t
|
|
// RUN: cd %t
|
|
//
|
|
// RUN: %clang_cc1 -std=c++20 %t/B.cppm -I%t -emit-module-interface -o %t/B.pcm
|
|
// RUN: %clang_cc1 -std=c++20 %t/A.cppm -I%t -fprebuilt-module-path=%t -emit-module-interface -verify
|
|
|
|
//--- A.cppm
|
|
import B; // expected-error{{missing 'export module' declaration in module interface unit}}
|
|
|
|
//--- B.cppm
|
|
module;
|
|
export module B;
|