[PATCH] D71485: [profile] Fix a crash when -fprofile-remapping-file= triggers an error

Fangrui Song via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Dec 13 11:19:30 PST 2019


MaskRay created this revision.
MaskRay added reviewers: rsmith, wenlei, wmi.
Herald added subscribers: llvm-commits, cfe-commits, hiraditya.
Herald added projects: clang, LLVM.

Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D71485

Files:
  clang/test/CodeGenCXX/Inputs/profile-remap-error.map
  clang/test/CodeGenCXX/profile-remap-error.cpp
  llvm/lib/Transforms/IPO/SampleProfile.cpp


Index: llvm/lib/Transforms/IPO/SampleProfile.cpp
===================================================================
--- llvm/lib/Transforms/IPO/SampleProfile.cpp
+++ llvm/lib/Transforms/IPO/SampleProfile.cpp
@@ -1973,7 +1973,8 @@
                                        : 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);
Index: clang/test/CodeGenCXX/profile-remap-error.cpp
===================================================================
--- /dev/null
+++ clang/test/CodeGenCXX/profile-remap-error.cpp
@@ -0,0 +1,9 @@
+// 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
+
+void foo();
Index: clang/test/CodeGenCXX/Inputs/profile-remap-error.map
===================================================================
--- /dev/null
+++ clang/test/CodeGenCXX/Inputs/profile-remap-error.map
@@ -0,0 +1 @@
+name unmangled ignored


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D71485.233840.patch
Type: text/x-patch
Size: 1667 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20191213/1e1ea203/attachment.bin>


More information about the cfe-commits mailing list