X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Ftree-eh.c;h=b294cf257cf6b28d222cb7327df90a2313d3e986;hp=294e309458b17ea9f52e610a916e2b158aaf8184;hb=201cd10314ccacb5e43ee1708e61c3988b23a156;hpb=e4bbf4c11869851e0e70d761bbca79fa79a69366 diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c index 294e309458b..b294cf257cf 100644 --- a/gcc/tree-eh.c +++ b/gcc/tree-eh.c @@ -15,8 +15,8 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +the Free Software Foundation, 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. */ #include "config.h" #include "system.h" @@ -36,6 +36,7 @@ Boston, MA 02111-1307, USA. */ #include "timevar.h" #include "langhooks.h" #include "ggc.h" +#include "toplev.h" /* Nonzero if we are using EH to handle cleanups. */ @@ -1826,7 +1827,7 @@ verify_eh_edges (tree stmt) { if ((e->flags & EDGE_EH) && !e->aux) { - error ("Unnecesary EH edge %i->%i", bb->index, e->dest->index); + error ("Unnecessary EH edge %i->%i", bb->index, e->dest->index); mark_eh_edge_found_error = true; return true; } @@ -1868,6 +1869,13 @@ tree_could_trap_p (tree expr) restart: switch (code) { + case TARGET_MEM_REF: + /* For TARGET_MEM_REFs use the information based on the original + reference. */ + expr = TMR_ORIGINAL (expr); + code = TREE_CODE (expr); + goto restart; + case COMPONENT_REF: case REALPART_EXPR: case IMAGPART_EXPR: