In most cases such poisoning makes sense, however PR28267 allows to jump over
intrinsic.
void f2(int cond) { switch (cond) { case 1: { ++cond; int tmp = 1; ptr = &tmp; exit(0); case 2: ptr = &tmp; *ptr = 5; exit(0); } } }
Paths
| Differential D24482
[asan] Don't poison variables for lifitime analysis on function entry AbandonedPublic Authored by vitalybuka on Sep 12 2016, 4:48 PM.
Details
Summary In most cases such poisoning makes sense, however PR28267 allows to jump over void f2(int cond) { switch (cond) { case 1: { ++cond; int tmp = 1; ptr = &tmp; exit(0); case 2: ptr = &tmp; *ptr = 5; exit(0); } } }
Diff Detail Event Timelinevitalybuka retitled this revision from to [asan] Don't poison variables as for lifitime analysis on function entry.. vitalybuka updated this object.
vitalybuka retitled this revision from [asan] Don't poison variables as for lifitime analysis on function entry. to [asan] Don't poison variables for lifitime analysis on function entry.Sep 12 2016, 6:51 PM vitalybuka updated this object. vitalybuka updated this object. vitalybuka updated this object.
Revision Contents
Diff 71093 lib/Transforms/Instrumentation/AddressSanitizer.cpp
test/Instrumentation/AddressSanitizer/lifetime-throw.ll
test/Instrumentation/AddressSanitizer/lifetime-uar-uas.ll
test/Instrumentation/AddressSanitizer/lifetime.ll
test/Instrumentation/AddressSanitizer/stack-poisoning-experimental-be.ll
test/Instrumentation/AddressSanitizer/stack-poisoning-experimental.ll
|
functions