diff options
author | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2015-01-05 20:26:44 +0000 |
---|---|---|
committer | Bernd Edlinger <edlinger@gcc.gnu.org> | 2015-01-05 20:26:44 +0000 |
commit | 0d5782429515e4abaa95a5e5be87a8998b3d9797 (patch) | |
tree | defef3517c7cbb4f79b6a8c8ece2bde656db1d1c /gcc | |
parent | 04a11c01de8e1480ef155329062e78d5c915f943 (diff) | |
download | gcc-0d5782429515e4abaa95a5e5be87a8998b3d9797.zip gcc-0d5782429515e4abaa95a5e5be87a8998b3d9797.tar.gz gcc-0d5782429515e4abaa95a5e5be87a8998b3d9797.tar.bz2 |
Enable experimental TSAN support for Ada.
2015-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
Enable experimental TSAN support for Ada.
* tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
From-SVN: r219197
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tsan.c | 11 |
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2ba1d2b..923cea3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de> + + Enable experimental TSAN support for Ada. + * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR. + 2015-01-05 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/64494 @@ -212,6 +212,17 @@ instrument_expr (gimple_stmt_iterator gsi, tree expr, bool is_write) build_int_cst (TREE_TYPE (expr), bitpos / BITS_PER_UNIT)); expr_ptr = build_fold_addr_expr (expr); } + /* We can't call build_fold_addr_expr on a VIEW_CONVERT_EXPR. + This can occur in Ada. */ + else if (TREE_CODE (expr) == VIEW_CONVERT_EXPR) + { + align = get_object_alignment (expr); + if (align < BITS_PER_UNIT) + return false; + expr = TREE_OPERAND (expr, 0); + gcc_checking_assert (is_gimple_addressable (expr)); + expr_ptr = build_fold_addr_expr (unshare_expr (expr)); + } else { align = get_object_alignment (expr); |