[test-suite] r332099 - [test-suite][ubsan] Fix UB in PENNANT in Mesh::initInvMap
Brian Homerding via llvm-commits
llvm-commits at lists.llvm.org
Fri May 11 08:44:08 PDT 2018
Author: homerdin
Date: Fri May 11 08:44:08 2018
New Revision: 332099
URL: http://llvm.org/viewvc/llvm-project?rev=332099&view=rev
Log:
[test-suite][ubsan] Fix UB in PENNANT in Mesh::initInvMap
PENNANT is accessing pcpair[-1] when i==0, however the value is not used when
i==0 due to short-circuit evaluationi so the application behavior is not
influenced. Adding a check to only load pcpair[i-1] when it will be used.
Modified:
test-suite/trunk/MultiSource/Benchmarks/DOE-ProxyApps-C++/PENNANT/Mesh.cc
Modified: test-suite/trunk/MultiSource/Benchmarks/DOE-ProxyApps-C++/PENNANT/Mesh.cc
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/DOE-ProxyApps-C%2B%2B/PENNANT/Mesh.cc?rev=332099&r1=332098&r2=332099&view=diff
==============================================================================
--- test-suite/trunk/MultiSource/Benchmarks/DOE-ProxyApps-C++/PENNANT/Mesh.cc (original)
+++ test-suite/trunk/MultiSource/Benchmarks/DOE-ProxyApps-C++/PENNANT/Mesh.cc Fri May 11 08:44:08 2018
@@ -273,8 +273,11 @@ void Mesh::initInvMap() {
sort(pcpair.begin(), pcpair.end());
for (int i = 0; i < numc; ++i) {
int p = pcpair[i].first;
- int pp = pcpair[i+1].first;
- int pm = pcpair[i-1].first;
+ int pp = pcpair[i+1].first;
+ int pm = 0;
+ // pm is only used when i != 0
+ if(i != 0)
+ pm = pcpair[i-1].first;
int c = pcpair[i].second;
int cp = pcpair[i+1].second;
More information about the llvm-commits
mailing list