mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-21 12:35:47 -04:00

Summary: Python2 will hit end of life soon: https://pythonclock.org/ This change also makes the integration with OSS-Fuzz a bit simpler: https://github.com/google/oss-fuzz/issues/1632 Reviewers: morehouse, kcc Reviewed By: morehouse Subscribers: delcypher, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D60282 llvm-svn: 357726
36 lines
1.0 KiB
Python
Executable File
36 lines
1.0 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
#===- lib/fuzzer/scripts/merge_data_flow.py ------------------------------===#
|
|
#
|
|
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
# See https://llvm.org/LICENSE.txt for license information.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
#
|
|
#===------------------------------------------------------------------------===#
|
|
# Merge several data flow traces into one.
|
|
# Usage:
|
|
# merge_data_flow.py trace1 trace2 ... > result
|
|
#===------------------------------------------------------------------------===#
|
|
import sys
|
|
import fileinput
|
|
from array import array
|
|
|
|
def Merge(a, b):
|
|
res = array('b')
|
|
for i in range(0, len(a)):
|
|
res.append(ord('1' if a[i] == '1' or b[i] == '1' else '0'))
|
|
return res.tostring()
|
|
|
|
def main(argv):
|
|
D = {}
|
|
for line in fileinput.input():
|
|
[F,BV] = line.strip().split(' ')
|
|
if F in D:
|
|
D[F] = Merge(D[F], BV)
|
|
else:
|
|
D[F] = BV;
|
|
for F in D.keys():
|
|
print("%s %s" % (F, D[F]))
|
|
|
|
if __name__ == '__main__':
|
|
main(sys.argv)
|