https://github.com/cyndyishida created https://github.com/llvm/llvm-project/pull/100636
None >From f96d9b79d7efb744182a5016295e6dd305564968 Mon Sep 17 00:00:00 2001 From: Cyndy Ishida <cyndy_ish...@apple.com> Date: Thu, 25 Jul 2024 12:15:45 -0700 Subject: [PATCH] [InstallAPI] Fix early return for scanning sub directories --- clang/lib/InstallAPI/DirectoryScanner.cpp | 3 +- .../directory-scanning-subdirectories.test | 61 +++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 clang/test/InstallAPI/directory-scanning-subdirectories.test diff --git a/clang/lib/InstallAPI/DirectoryScanner.cpp b/clang/lib/InstallAPI/DirectoryScanner.cpp index 8984758e7b446..03a8208c7364e 100644 --- a/clang/lib/InstallAPI/DirectoryScanner.cpp +++ b/clang/lib/InstallAPI/DirectoryScanner.cpp @@ -130,7 +130,8 @@ Error DirectoryScanner::scanHeaders(StringRef Path, Library &Lib, if (ParentPath.empty()) ParentPath = Path; for (const StringRef Dir : SubDirectories) - return scanHeaders(Dir, Lib, Type, BasePath, ParentPath); + if (Error Err = scanHeaders(Dir, Lib, Type, BasePath, ParentPath)) + return Err; return Error::success(); } diff --git a/clang/test/InstallAPI/directory-scanning-subdirectories.test b/clang/test/InstallAPI/directory-scanning-subdirectories.test new file mode 100644 index 0000000000000..3eac90440fa1e --- /dev/null +++ b/clang/test/InstallAPI/directory-scanning-subdirectories.test @@ -0,0 +1,61 @@ +; RUN: rm -rf %t +; RUN: split-file %s %t +; RUN: mkdir -p %t/DstRoot/ +; RUN: cp -r %S/Inputs/LibFoo/* %t/DstRoot/ + +; RUN: clang-installapi \ +; RUN: -target arm64-apple-macos12 -install_name @rpath/libfoo.dylib \ +; RUN: -current_version 1 -compatibility_version 1 \ +; RUN: -I%t/DstRoot/usr/include -dynamiclib \ +; RUN: -exclude-public-header %t/DstRoot/usr/include/public.h \ +; RUN: %t/DstRoot -o %t/output.tbd 2>&1 | FileCheck %s --allow-empty \ +; RUN: --implicit-check-not=error --implicit-check-not=warning +; RUN: llvm-readtapi --compare %t/output.tbd %t/expected.tbd + + +;--- DstRoot/usr/include/extra/extra.h +int extra(void); + +;--- DstRoot/usr/include/extra/additional/additional.h +int additional(void); + +;--- DstRoot/usr/include/more/more.h +int more(void); + +;--- DstRoot/usr/include/another/another.h +int another(void); + +;--- expected.tbd +{ + "main_library": { + "exported_symbols": [ + { + "text": { + "global": [ + "_foo", "_additional", "_more", + "_another", "_extra" + ] + } + } + ], + "flags": [ + { + "attributes": [ + "not_app_extension_safe" + ] + } + ], + "install_names": [ + { + "name": "@rpath/libfoo.dylib" + } + ], + "target_info": [ + { + "min_deployment": "12", + "target": "arm64-macos" + } + ] + }, + "tapi_tbd_version": 5 +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits