1*9880d681SAndroid Build Coastguard Worker; We previously had a case where we would put results from a no-args call in 2*9880d681SAndroid Build Coastguard Worker; its own stratified set. This would make cases like the one in @test say that 3*9880d681SAndroid Build Coastguard Worker; nothing (except %Escapes and %Arg) can alias 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -disable-basicaa -cfl-steens-aa -aa-eval -print-all-alias-modref-info -disable-output 2>&1 | FileCheck %s 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker; CHECK: Function: test 8*9880d681SAndroid Build Coastguard Worker; CHECK: NoAlias: i8* %Arg, i8* %Escapes 9*9880d681SAndroid Build Coastguard Worker; CHECK: MayAlias: i8* %Arg, i8* %Retrieved 10*9880d681SAndroid Build Coastguard Worker; CHECK: MayAlias: i8* %Escapes, i8* %Retrieved 11*9880d681SAndroid Build Coastguard Workerdefine void @test(i8* %Arg) { 12*9880d681SAndroid Build Coastguard Worker %Noalias = alloca i8 13*9880d681SAndroid Build Coastguard Worker %Escapes = alloca i8 14*9880d681SAndroid Build Coastguard Worker call void @set_thepointer(i8* %Escapes) 15*9880d681SAndroid Build Coastguard Worker %Retrieved = call i8* @get_thepointer() 16*9880d681SAndroid Build Coastguard Worker ret void 17*9880d681SAndroid Build Coastguard Worker} 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workerdeclare void @set_thepointer(i8* %P) 20*9880d681SAndroid Build Coastguard Workerdeclare i8* @get_thepointer() 21