[PATCH] D17129: [Compiler-rt][MSan] fix param_tls_limit test
Daniel Sanders via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 15 07:21:01 PST 2016
dsanders added a subscriber: dsanders.
dsanders added a comment.
In http://reviews.llvm.org/D17129#350594, @eugenis wrote:
> If an argument does not fit in param-tls, it becomes completely unpoisoned - not just the overflow part, but the entire argument.
> I suspect that on non-x86 targets the large struct may be passed as several smaller arguments, and then the ones that fit (completely!) will be poisoned.
I can confirm that we slice large aggregates into a series of smaller arguments (i32 on o32, i64 on n32/n64) in clang.
================
Comment at: test/msan/param_tls_limit.cc:37
@@ -36,23 +36,3 @@
void f801(S<801> s) {
- OVERFLOW(s);
-}
-
-void f1000(S<1000> s) {
- OVERFLOW(s);
-}
-
-void f_many(int a, double b, S<800> s, int c, double d) {
- NO_OVERFLOW(a);
- NO_OVERFLOW(b);
- OVERFLOW(s);
- OVERFLOW(c);
- OVERFLOW(d);
-}
-
-// -8 bytes for "int a", aligned by 8
-// -2 to make "int c" a partial fit
-void f_many2(int a, S<800 - 8 - 2> s, int c, double d) {
- NO_OVERFLOW(a);
- NO_OVERFLOW(s);
- OVERFLOW(c);
- OVERFLOW(d);
+ // poision only till the size of ParamTLS will get detected
+ NO_POISON(s);
----------------
Typo: poision
Repository:
rL LLVM
http://reviews.llvm.org/D17129
More information about the llvm-commits
mailing list