<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Evgeniy,<div class=""><br class=""></div><div class="">Is this yours: <a href="http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA_check/11171/testReport/junit/SafeStack/SafeStack/canary_c/" class="">http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA_check/11171/testReport/junit/SafeStack/SafeStack/canary_c/</a></div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Adam</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Apr 11, 2016, at 3:28 PM, Evgeniy Stepanov via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Author: eugenis<br class="">Date: Mon Apr 11 17:28:13 2016<br class="">New Revision: 266006<br class=""><br class="">URL: <a href="http://llvm.org/viewvc/llvm-project?rev=266006&view=rev" class="">http://llvm.org/viewvc/llvm-project?rev=266006&view=rev</a><br class="">Log:<br class="">[safestack] A test for stackprotector canaries.<br class=""><br class="">Added:<br class="">    compiler-rt/trunk/test/safestack/canary.c<br class=""><br class="">Added: compiler-rt/trunk/test/safestack/canary.c<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/safestack/canary.c?rev=266006&view=auto" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/safestack/canary.c?rev=266006&view=auto</a><br class="">==============================================================================<br class="">--- compiler-rt/trunk/test/safestack/canary.c (added)<br class="">+++ compiler-rt/trunk/test/safestack/canary.c Mon Apr 11 17:28:13 2016<br class="">@@ -0,0 +1,37 @@<br class="">+// RUN: %clang_safestack -g %s -o %t.nossp<br class="">+// RUN: %run %t.nossp 2>&1 | FileCheck --check-prefix=NOSSP %s<br class="">+<br class="">+// RUN: %clang_safestack -fstack-protector-all -g %s -o %t.ssp<br class="">+// RUN: not --crash %run %t.ssp 2>&1 | FileCheck -check-prefix=SSP %s<br class="">+<br class="">+// Test stack canaries on the unsafe stack.<br class="">+<br class="">+// REQUIRES: stable-runtime<br class="">+<br class="">+#include <assert.h><br class="">+#include <stdio.h><br class="">+#include <string.h><br class="">+<br class="">+__attribute__((noinline)) void f(unsigned *y) {<br class="">+  char x;<br class="">+  char *volatile p = &x;<br class="">+  char *volatile q = (char *)y;<br class="">+  assert(p < q);<br class="">+  assert(q - p < 1024); // sanity<br class="">+  // This has technically undefined behavior, but we know the actual layout of<br class="">+  // the unsafe stack and this should not touch anything important.<br class="">+  memset(&x, 0xab, q - p + sizeof(*y));<br class="">+}<br class="">+<br class="">+int main(int argc, char **argv)<br class="">+{<br class="">+  unsigned y;<br class="">+  // NOSSP: main 1<br class="">+  // SSP: main 1<br class="">+  fprintf(stderr, "main 1\n");<br class="">+  f(&y);<br class="">+  // NOSSP: main 2<br class="">+  // SSP-NOT: main 2<br class="">+  fprintf(stderr, "main 2\n");<br class="">+  return 0;<br class="">+}<br class=""><br class=""><br class="">_______________________________________________<br class="">llvm-commits mailing list<br class=""><a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a><br class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits<br class=""></div></div></blockquote></div><br class=""></div></body></html>