--- /dev/null
+/* { dg-do compile { target arm*-*-*} } */
+/* { dg-options "-fno-builtin-malloc -fno-builtin-free -fno-builtin-memset
+ * -fno-omit-frame-pointer -marm -Wa,-mimplicit-it=arm" } */
+/* { dg-skip-if "" { *-*-* } { "*" } { "-O0" } } */
+/* { dg-shouldfail "asan" } */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *memset (void *, int, __SIZE_TYPE__);
+void *malloc (__SIZE_TYPE__);
+void free (void *);
+
+const char *
+__asan_default_options () {
+ return "fast_unwind_on_fatal=true";
+}
+
+#ifdef __cplusplus
+}
+#endif
+volatile int ten = 10;
+__attribute__ ((noinline)) int
+foo ()
+{
+ char *x = (char *) malloc (10);
+ memset(x, 0, 10);
+ int res = x[ten]; /* BOOOM */
+ free(x);
+ return res;
+}
+
+__attribute__ ((noinline)) int
+bar ()
+{
+ return foo ();
+}
+
+int
+main (int argc, char **argv)
+{
+ return bar ();
+}
+
+/* { dg-output "READ of size 1 at 0x\[0-9a-f\]+ thread T0.*(\n|\r\n|\r)" } */
+/* { dg-output " #0 0x\[0-9a-f\]+ +(in \[^\n\r]*foo\[^\n\r]*fast-unwind.c:29|\[(\]).*(\n|\r\n|\r)" } */
+/* { dg-output " #1 0x\[0-9a-f\]+ +(in \[^\n\r]*bar\[^\n\r]*fast-unwind.c:37|\[(\]).*(\n|\r\n|\r)" } */
+/* { dg-output " #2 0x\[0-9a-f\]+ +(in _*main (\[^\n\r]*fast-unwind.c:43|\[^\n\r]*:0)|\[(\]).*(\n|\r\n|\r)" } */
%global gcc_release `sed -e 's/^.*-//g' %{_builddir}/gcc-%{version}/gcc/LINARO-VERSION`
%build
-%{?asan:%gcc_unforce_options}
+%{?asan:
+%gcc_unforce_options
+%ifarch armv7l
+RPM_OPT_FLAGS="$RPM_OPT_FLAGS -marm -Wa,-mimplicit-it=arm -fno-omit-frame-pointer"
+%endif
+}
rm -rf obj
mkdir obj
cd obj
%global gcc_release `sed -e 's/^.*-//g' %{_builddir}/gcc-%{version}/gcc/LINARO-VERSION`
%build
-%{?asan:%gcc_unforce_options}
+%{?asan:
+%gcc_unforce_options
+%ifarch armv7l
+RPM_OPT_FLAGS="$RPM_OPT_FLAGS -marm -Wa,-mimplicit-it=arm -fno-omit-frame-pointer"
+%endif
+}
rm -rf obj
mkdir obj
cd obj
%global gcc_release `sed -e 's/^.*-//g' %{_builddir}/gcc-%{version}/gcc/LINARO-VERSION`
%build
-%{?asan:%gcc_unforce_options}
+%{?asan:
+%gcc_unforce_options
+%ifarch armv7l
+RPM_OPT_FLAGS="$RPM_OPT_FLAGS -marm -Wa,-mimplicit-it=arm -fno-omit-frame-pointer"
+%endif
+}
rm -rf obj
mkdir obj
cd obj