mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
92a77f4b5e
Under NPM, the asan-globals-md analysis is required but cannot be run within the asan function pass due to module analyses not being able to run from a function pass. So this pins all tests using "-asan" to the legacy PM and adds a corresponding RUN line with -passes='require<asan-globals-md>,function(asan)'. Now all tests in Instrumentation/AddressSanitizer pass when -enable-new-pm is by default on. Tests were automatically converted using the following python script and failures were manually fixed up. import sys for i in sys.argv: with open(i, 'r') as f: s = f.read() with open(i, 'w') as f: for l in s.splitlines(): if "RUN:" in l and ' -asan -asan-module ' in l and '\\' not in l: f.write(l.replace(' -asan -asan-module ', ' -asan -asan-module -enable-new-pm=0 ')) f.write('\n') f.write(l.replace(' -asan -asan-module ', " -passes='require<asan-globals-md>,function(asan),module(asan-module)' ")) f.write('\n') elif "RUN:" in l and ' -asan ' in l and '\\' not in l: f.write(l.replace(' -asan ', ' -asan -enable-new-pm=0 ')) f.write('\n') f.write(l.replace(' -asan ', " -passes='require<asan-globals-md>,function(asan)' ")) f.write('\n') else: f.write(l) f.write('\n') See https://bugs.llvm.org/show_bug.cgi?id=46611. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D83921
16 lines
790 B
LLVM
16 lines
790 B
LLVM
; This test checks that we instrument regular globals, but do not touch
|
|
; the COMDAT ones.
|
|
; RUN: opt < %s -asan -asan-module -enable-new-pm=0 -S | FileCheck %s
|
|
; RUN: opt < %s -passes='asan-pipeline' -S | FileCheck %s
|
|
target datalayout = "e-m:w-p:32:32-i64:64-f80:32-n8:16:32-S32"
|
|
target triple = "i686-pc-windows-msvc"
|
|
; no action should be taken for these globals
|
|
$global_noinst = comdat largest
|
|
@aliasee = private unnamed_addr constant [2 x i8] [i8 1, i8 2], comdat($global_noinst)
|
|
@global_noinst = unnamed_addr alias [2 x i8], [2 x i8]* @aliasee
|
|
; CHECK-NOT: {{asan_gen.*global_noinst}}
|
|
; CHECK-DAG: @global_noinst = unnamed_addr alias [2 x i8], [2 x i8]* @aliasee
|
|
@global_inst = private constant [2 x i8] [i8 1, i8 2]
|
|
; CHECK-DAG: {{asan_gen.*global_inst}}
|
|
; CHECK: @asan.module_ctor
|