Index: lib/msan/lit_tests/inline.cc
===================================================================
--- lib/msan/lit_tests/inline.cc	(revision 0)
+++ lib/msan/lit_tests/inline.cc	(revision 0)
@@ -0,0 +1,20 @@
+// RUN: %clangxx_msan -O3 %s -o %t && %t
+
+// Test that no_sanitize_memory attribute applies even when the function would
+// be normally inlined.
+
+#include <stdlib.h>
+
+__attribute__((no_sanitize_memory))
+int f(int *p) {
+  if (*p) // BOOOM?? Nope!
+    exit(0);
+  return 0;
+}
+
+int main(int argc, char **argv) {
+  int x;
+  int * volatile p = &x;
+  int res = f(p);
+  return 0;
+}

Property changes on: lib/msan/lit_tests/inline.cc
___________________________________________________________________
Added: svn:eol-style
   + LF

Index: lib/asan/lit_tests/TestCases/inline.cc
===================================================================
--- lib/asan/lit_tests/TestCases/inline.cc	(revision 0)
+++ lib/asan/lit_tests/TestCases/inline.cc	(revision 0)
@@ -0,0 +1,19 @@
+// RUN: %clangxx_asan -O3 %s -o %t && %t
+
+// Test that no_sanitize_address attribute applies even when the function would
+// be normally inlined.
+
+#include <stdlib.h>
+
+__attribute__((no_sanitize_address))
+int f(int *p) {
+  return *p; // BOOOM?? Nope!
+}
+
+int main(int argc, char **argv) {
+  int * volatile x = (int*)malloc(2*sizeof(int) + 2);
+  int res = f(x + 2);
+  if (res)
+    exit(0);
+  return 0;
+}

Property changes on: lib/asan/lit_tests/TestCases/inline.cc
___________________________________________________________________
Added: svn:eol-style
   + LF

