From 768fbdd49e8535486ea71eebc507c3b813521a1b Mon Sep 17 00:00:00 2001 From: Ilya Enkovich Date: Tue, 10 Mar 2015 09:48:51 +0000 Subject: [PATCH] mpx-dg.exp (mpx_link_flags): Set path to wrappers library. * lib/mpx-dg.exp (mpx_link_flags): Set path to wrappers library. * gcc.target/i386/mpx/calloc-1-lbv.c: New. * gcc.target/i386/mpx/calloc-1-ubv.c: New. * gcc.target/i386/mpx/calloc-1-nov.c: New. * gcc.target/i386/mpx/malloc-1-lbv.c: New. * gcc.target/i386/mpx/malloc-1-nov.c: New. * gcc.target/i386/mpx/malloc-1-ubv.c: New. * gcc.target/i386/mpx/realloc-1-lbv.c: New. * gcc.target/i386/mpx/realloc-1-nov.c: New. * gcc.target/i386/mpx/realloc-1-ubv.c: New. * gcc.target/i386/mpx/realloc-2-lbv.c: New. * gcc.target/i386/mpx/realloc-2-nov.c: New. * gcc.target/i386/mpx/realloc-2-ubv.c: New. From-SVN: r221315 --- gcc/testsuite/ChangeLog | 16 +++++++++++ .../gcc.target/i386/mpx/calloc-1-lbv.c | 26 ++++++++++++++++++ .../gcc.target/i386/mpx/calloc-1-nov.c | 24 +++++++++++++++++ .../gcc.target/i386/mpx/calloc-1-ubv.c | 26 ++++++++++++++++++ .../gcc.target/i386/mpx/malloc-1-lbv.c | 26 ++++++++++++++++++ .../gcc.target/i386/mpx/malloc-1-nov.c | 24 +++++++++++++++++ .../gcc.target/i386/mpx/malloc-1-ubv.c | 26 ++++++++++++++++++ .../gcc.target/i386/mpx/realloc-1-lbv.c | 27 +++++++++++++++++++ .../gcc.target/i386/mpx/realloc-1-nov.c | 25 +++++++++++++++++ .../gcc.target/i386/mpx/realloc-1-ubv.c | 27 +++++++++++++++++++ .../gcc.target/i386/mpx/realloc-2-lbv.c | 27 +++++++++++++++++++ .../gcc.target/i386/mpx/realloc-2-nov.c | 25 +++++++++++++++++ .../gcc.target/i386/mpx/realloc-2-ubv.c | 27 +++++++++++++++++++ gcc/testsuite/lib/mpx-dg.exp | 14 ++++++++++ 14 files changed, 340 insertions(+) create mode 100644 gcc/testsuite/gcc.target/i386/mpx/calloc-1-lbv.c create mode 100644 gcc/testsuite/gcc.target/i386/mpx/calloc-1-nov.c create mode 100644 gcc/testsuite/gcc.target/i386/mpx/calloc-1-ubv.c create mode 100644 gcc/testsuite/gcc.target/i386/mpx/malloc-1-lbv.c create mode 100644 gcc/testsuite/gcc.target/i386/mpx/malloc-1-nov.c create mode 100644 gcc/testsuite/gcc.target/i386/mpx/malloc-1-ubv.c create mode 100644 gcc/testsuite/gcc.target/i386/mpx/realloc-1-lbv.c create mode 100644 gcc/testsuite/gcc.target/i386/mpx/realloc-1-nov.c create mode 100644 gcc/testsuite/gcc.target/i386/mpx/realloc-1-ubv.c create mode 100644 gcc/testsuite/gcc.target/i386/mpx/realloc-2-lbv.c create mode 100644 gcc/testsuite/gcc.target/i386/mpx/realloc-2-nov.c create mode 100644 gcc/testsuite/gcc.target/i386/mpx/realloc-2-ubv.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9a48aed4728..564944dab57 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,19 @@ +2015-03-10 Ilya Enkovich + + * lib/mpx-dg.exp (mpx_link_flags): Set path to wrappers library. + * gcc.target/i386/mpx/calloc-1-lbv.c: New. + * gcc.target/i386/mpx/calloc-1-ubv.c: New. + * gcc.target/i386/mpx/calloc-1-nov.c: New. + * gcc.target/i386/mpx/malloc-1-lbv.c: New. + * gcc.target/i386/mpx/malloc-1-nov.c: New. + * gcc.target/i386/mpx/malloc-1-ubv.c: New. + * gcc.target/i386/mpx/realloc-1-lbv.c: New. + * gcc.target/i386/mpx/realloc-1-nov.c: New. + * gcc.target/i386/mpx/realloc-1-ubv.c: New. + * gcc.target/i386/mpx/realloc-2-lbv.c: New. + * gcc.target/i386/mpx/realloc-2-nov.c: New. + * gcc.target/i386/mpx/realloc-2-ubv.c: New. + 2015-03-10 Ilya Enkovich * gcc/testsuite/lib/mpx-dg.exp (mpx_link_flags): New. diff --git a/gcc/testsuite/gcc.target/i386/mpx/calloc-1-lbv.c b/gcc/testsuite/gcc.target/i386/mpx/calloc-1-lbv.c new file mode 100644 index 00000000000..0ba5d73229d --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/mpx/calloc-1-lbv.c @@ -0,0 +1,26 @@ +/* { dg-do run } */ +/* { dg-shouldfail "bounds violation" } */ +/* { dg-options "-fcheck-pointer-bounds -mmpx" } */ + + +#define SHOULDFAIL + +#include "mpx-check.h" + +int rd (int *p, int i) +{ + int res = p[i]; + printf ("%d\n", res); + return res; +} + +int mpx_test (int argc, const char **argv) +{ + int *buf = (int *)calloc (100, sizeof(int)); + + rd (buf, -1); + + free (buf); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/i386/mpx/calloc-1-nov.c b/gcc/testsuite/gcc.target/i386/mpx/calloc-1-nov.c new file mode 100644 index 00000000000..cb755e57391 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/mpx/calloc-1-nov.c @@ -0,0 +1,24 @@ +/* { dg-do run } */ +/* { dg-options "-fcheck-pointer-bounds -mmpx" } */ + + +#include "mpx-check.h" + +int rd (int *p, int i) +{ + int res = p[i]; + printf ("%d\n", res); + return res; +} + +int mpx_test (int argc, const char **argv) +{ + int *buf = (int *)calloc (100, sizeof(int)); + + rd (buf, 0); + rd (buf, 99); + + free (buf); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/i386/mpx/calloc-1-ubv.c b/gcc/testsuite/gcc.target/i386/mpx/calloc-1-ubv.c new file mode 100644 index 00000000000..a932a8c7b47 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/mpx/calloc-1-ubv.c @@ -0,0 +1,26 @@ +/* { dg-do run } */ +/* { dg-shouldfail "bounds violation" } */ +/* { dg-options "-fcheck-pointer-bounds -mmpx" } */ + + +#define SHOULDFAIL + +#include "mpx-check.h" + +int rd (int *p, int i) +{ + int res = p[i]; + printf ("%d\n", res); + return res; +} + +int mpx_test (int argc, const char **argv) +{ + int *buf = (int *)calloc (100, sizeof(int)); + + rd (buf, 100); + + free (buf); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/i386/mpx/malloc-1-lbv.c b/gcc/testsuite/gcc.target/i386/mpx/malloc-1-lbv.c new file mode 100644 index 00000000000..aa2aed983cf --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/mpx/malloc-1-lbv.c @@ -0,0 +1,26 @@ +/* { dg-do run } */ +/* { dg-shouldfail "bounds violation" } */ +/* { dg-options "-fcheck-pointer-bounds -mmpx" } */ + + +#define SHOULDFAIL + +#include "mpx-check.h" + +int rd (int *p, int i) +{ + int res = p[i]; + printf ("%d\n", res); + return res; +} + +int mpx_test (int argc, const char **argv) +{ + int *buf = (int *)malloc (100 * sizeof(int)); + + rd (buf, -1); + + free (buf); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/i386/mpx/malloc-1-nov.c b/gcc/testsuite/gcc.target/i386/mpx/malloc-1-nov.c new file mode 100644 index 00000000000..56f26e964d8 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/mpx/malloc-1-nov.c @@ -0,0 +1,24 @@ +/* { dg-do run } */ +/* { dg-options "-fcheck-pointer-bounds -mmpx" } */ + + +#include "mpx-check.h" + +int rd (int *p, int i) +{ + int res = p[i]; + printf ("%d\n", res); + return res; +} + +int mpx_test (int argc, const char **argv) +{ + int *buf = (int *)malloc (100 * sizeof(int)); + + rd (buf, 0); + rd (buf, 99); + + free (buf); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/i386/mpx/malloc-1-ubv.c b/gcc/testsuite/gcc.target/i386/mpx/malloc-1-ubv.c new file mode 100644 index 00000000000..6f48ec26923 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/mpx/malloc-1-ubv.c @@ -0,0 +1,26 @@ +/* { dg-do run } */ +/* { dg-shouldfail "bounds violation" } */ +/* { dg-options "-fcheck-pointer-bounds -mmpx" } */ + + +#define SHOULDFAIL + +#include "mpx-check.h" + +int rd (int *p, int i) +{ + int res = p[i]; + printf ("%d\n", res); + return res; +} + +int mpx_test (int argc, const char **argv) +{ + int *buf = (int *)malloc (100 * sizeof(int)); + + rd (buf, 100); + + free (buf); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/i386/mpx/realloc-1-lbv.c b/gcc/testsuite/gcc.target/i386/mpx/realloc-1-lbv.c new file mode 100644 index 00000000000..961196f71c0 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/mpx/realloc-1-lbv.c @@ -0,0 +1,27 @@ +/* { dg-do run } */ +/* { dg-shouldfail "bounds violation" } */ +/* { dg-options "-fcheck-pointer-bounds -mmpx" } */ + + +#define SHOULDFAIL + +#include "mpx-check.h" + +int rd (int *p, int i) +{ + int res = p[i]; + printf ("%d\n", res); + return res; +} + +int mpx_test (int argc, const char **argv) +{ + int *buf = (int *)malloc (100 * sizeof(int)); + buf = (int *)realloc (buf, 200 * sizeof(int)); + + rd (buf, -1); + + free (buf); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/i386/mpx/realloc-1-nov.c b/gcc/testsuite/gcc.target/i386/mpx/realloc-1-nov.c new file mode 100644 index 00000000000..f4b3dd86081 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/mpx/realloc-1-nov.c @@ -0,0 +1,25 @@ +/* { dg-do run } */ +/* { dg-options "-fcheck-pointer-bounds -mmpx" } */ + + +#include "mpx-check.h" + +int rd (int *p, int i) +{ + int res = p[i]; + printf ("%d\n", res); + return res; +} + +int mpx_test (int argc, const char **argv) +{ + int *buf = (int *)malloc (100 * sizeof(int)); + buf = (int *)realloc (buf, 200 * sizeof(int)); + + rd (buf, 0); + rd (buf, 199); + + free (buf); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/i386/mpx/realloc-1-ubv.c b/gcc/testsuite/gcc.target/i386/mpx/realloc-1-ubv.c new file mode 100644 index 00000000000..8a14baa7a94 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/mpx/realloc-1-ubv.c @@ -0,0 +1,27 @@ +/* { dg-do run } */ +/* { dg-shouldfail "bounds violation" } */ +/* { dg-options "-fcheck-pointer-bounds -mmpx" } */ + + +#define SHOULDFAIL + +#include "mpx-check.h" + +int rd (int *p, int i) +{ + int res = p[i]; + printf ("%d\n", res); + return res; +} + +int mpx_test (int argc, const char **argv) +{ + int *buf = (int *)malloc (100 * sizeof(int)); + buf = (int *)realloc (buf, 200 * sizeof(int)); + + rd (buf, 200); + + free (buf); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/i386/mpx/realloc-2-lbv.c b/gcc/testsuite/gcc.target/i386/mpx/realloc-2-lbv.c new file mode 100644 index 00000000000..919f62a490e --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/mpx/realloc-2-lbv.c @@ -0,0 +1,27 @@ +/* { dg-do run } */ +/* { dg-shouldfail "bounds violation" } */ +/* { dg-options "-fcheck-pointer-bounds -mmpx" } */ + + +#define SHOULDFAIL + +#include "mpx-check.h" + +int rd (int *p, int i) +{ + int res = p[i]; + printf ("%d\n", res); + return res; +} + +int mpx_test (int argc, const char **argv) +{ + int *buf = (int *)malloc (100 * sizeof(int)); + buf = (int *)realloc (buf, 10 * sizeof(int)); + + rd (buf, -1); + + free (buf); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/i386/mpx/realloc-2-nov.c b/gcc/testsuite/gcc.target/i386/mpx/realloc-2-nov.c new file mode 100644 index 00000000000..569cd241cc9 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/mpx/realloc-2-nov.c @@ -0,0 +1,25 @@ +/* { dg-do run } */ +/* { dg-options "-fcheck-pointer-bounds -mmpx" } */ + + +#include "mpx-check.h" + +int rd (int *p, int i) +{ + int res = p[i]; + printf ("%d\n", res); + return res; +} + +int mpx_test (int argc, const char **argv) +{ + int *buf = (int *)malloc (100 * sizeof(int)); + buf = (int *)realloc (buf, 10 * sizeof(int)); + + rd (buf, 0); + rd (buf, 9); + + free (buf); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/i386/mpx/realloc-2-ubv.c b/gcc/testsuite/gcc.target/i386/mpx/realloc-2-ubv.c new file mode 100644 index 00000000000..36eb90c1abf --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/mpx/realloc-2-ubv.c @@ -0,0 +1,27 @@ +/* { dg-do run } */ +/* { dg-shouldfail "bounds violation" } */ +/* { dg-options "-fcheck-pointer-bounds -mmpx" } */ + + +#define SHOULDFAIL + +#include "mpx-check.h" + +int rd (int *p, int i) +{ + int res = p[i]; + printf ("%d\n", res); + return res; +} + +int mpx_test (int argc, const char **argv) +{ + int *buf = (int *)malloc (100 * sizeof(int)); + buf = (int *)realloc (buf, 10 * sizeof(int)); + + rd (buf, 10); + + free (buf); + + return 0; +} diff --git a/gcc/testsuite/lib/mpx-dg.exp b/gcc/testsuite/lib/mpx-dg.exp index e1b5f2fe96d..0b731a7ee46 100644 --- a/gcc/testsuite/lib/mpx-dg.exp +++ b/gcc/testsuite/lib/mpx-dg.exp @@ -48,6 +48,14 @@ proc mpx_link_flags { paths } { append flags " -L${gccpath}/libmpx/mpxrt/.libs " append ld_library_path ":${gccpath}/libmpx/mpxrt/.libs" } + + if { [file exists "${gccpath}/libmpx/mpxwrap/.libs/libmpxwrappers.a"] + || [file exists "${gccpath}/libmpx/mpxwrap/.libs/libmpxwrappers.${shlib_ext}"] } { + append flags " -B${gccpath}/libmpx/ " + append flags " -B${gccpath}/libmpx/mpxwrap " + append flags " -L${gccpath}/libmpx/mpxwrap/.libs " + append ld_library_path ":${gccpath}/libmpx/mpxwrap/.libs" + } } else { global tool_root_dir @@ -56,6 +64,12 @@ proc mpx_link_flags { paths } { append flags "-L${libmpx} " append ld_library_path ":${libmpx}" } + + set libmpxwrappers [lookfor_file ${tool_root_dir} libmpxwrappers] + if { $libmpxwrappers != "" } { + append flags "-L${libmpxwrappers} " + append ld_library_path ":${libmpxwrappers}" + } } set_ld_library_path_env_vars -- 2.30.2