llvm-project/clang/test/Modules/lookup-file-cache.cpp
Richard Smith 7c5e4efb09 Track the RequestingModule in the HeaderSearch LookupFile cache.
Different requesting modules can have different lookup results, so don't
cache results across modules.

Fixes a regression introduced in reviews.llvm.org/D132779.

Test case based on one provided by Jan Svoboda.

Reviewed By: jansvoboda11

Differential Revision: https://reviews.llvm.org/D156000
2023-07-21 15:49:47 -07:00

28 lines
629 B
C++

// RUN: rm -rf %t
// RUN: split-file %s %t
// RUN: %clang_cc1 -I %t/include -fmodules -fimplicit-module-maps \
// RUN: -fmodules-cache-path=%t/cache -fsyntax-only %t/tu.c
//--- include/module.modulemap
module A [no_undeclared_includes] { textual header "A.h" }
module B { header "B.h" }
//--- include/A.h
#if __has_include(<B.h>)
#error B.h should not be available from A.h.
#endif
//--- include/B.h
// This file intentionally left blank.
//--- tu.c
#if !__has_include(<B.h>)
#error B.h should be available from tu.c.
#endif
#include "A.h"
#if !__has_include(<B.h>)
#error B.h should still be available from tu.c.
#endif