Author: Fangrui Song Date: 2019-12-13T11:38:20-08:00 New Revision: 193da743db63bc7299717f583a63e68d55408731
URL: https://github.com/llvm/llvm-project/commit/193da743db63bc7299717f583a63e68d55408731 DIFF: https://github.com/llvm/llvm-project/commit/193da743db63bc7299717f583a63e68d55408731.diff LOG: [profile] Fix a crash when -fprofile-remapping-file= triggers an error Reviewed By: wmi Differential Revision: https://reviews.llvm.org/D71485 Added: clang/test/CodeGenCXX/Inputs/profile-remap-error.map clang/test/CodeGenCXX/profile-remap-error.cpp Modified: llvm/lib/Transforms/IPO/SampleProfile.cpp Removed: ################################################################################ diff --git a/clang/test/CodeGenCXX/Inputs/profile-remap-error.map b/clang/test/CodeGenCXX/Inputs/profile-remap-error.map new file mode 100644 index 000000000000..feb6ce75a5d4 --- /dev/null +++ b/clang/test/CodeGenCXX/Inputs/profile-remap-error.map @@ -0,0 +1 @@ +name unmangled ignored diff --git a/clang/test/CodeGenCXX/profile-remap-error.cpp b/clang/test/CodeGenCXX/profile-remap-error.cpp new file mode 100644 index 000000000000..0a04e85a20af --- /dev/null +++ b/clang/test/CodeGenCXX/profile-remap-error.cpp @@ -0,0 +1,7 @@ +// REQUIRES: x86-registered-target + +// RUN: not %clang_cc1 -triple x86_64-linux-gnu -fprofile-sample-use=%S/Inputs/profile-remap.samples -fprofile-remapping-file=%S/Inputs/profile-remap-error.map -fexperimental-new-pass-manager -O2 %s -emit-llvm -o - 2>&1 | FileCheck %s + +// CHECK: error: {{.*}}/profile-remap-error.map:1: Could not demangle 'unmangled' as a <name>; invalid mangling? +// CHECK-NEXT: error: {{.*}}/profile-remap-error.map: Could not create remapper: Malformed sample profile data +// CHECK-NEXT: error: {{.*}}/profile-remap.samples: Could not open profile: Malformed sample profile data diff --git a/llvm/lib/Transforms/IPO/SampleProfile.cpp b/llvm/lib/Transforms/IPO/SampleProfile.cpp index 2b169638d409..a1fbb1adc412 100644 --- a/llvm/lib/Transforms/IPO/SampleProfile.cpp +++ b/llvm/lib/Transforms/IPO/SampleProfile.cpp @@ -1973,7 +1973,8 @@ PreservedAnalyses SampleProfileLoaderPass::run(Module &M, : ProfileRemappingFileName, IsThinLTOPreLink, GetAssumptionCache, GetTTI); - SampleLoader.doInitialization(M); + if (!SampleLoader.doInitialization(M)) + return PreservedAnalyses::all(); ProfileSummaryInfo *PSI = &AM.getResult<ProfileSummaryAnalysis>(M); CallGraph &CG = AM.getResult<CallGraphAnalysis>(M); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits