X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=libmudflap%2Fmf-heuristics.c;h=020a7c29d527aae026147bda403bd0b675f54918;hb=79135b3081f4aa0410dd4016a17895f679710e62;hp=df2a0391eaf0d9ad9cb30a05e64c2c947aada31f;hpb=1c865459b455969e4390eaed4d78a5a6f7f7d2b3;p=pf3gnuchains%2Fgcc-fork.git diff --git a/libmudflap/mf-heuristics.c b/libmudflap/mf-heuristics.c index df2a0391eaf..020a7c29d52 100644 --- a/libmudflap/mf-heuristics.c +++ b/libmudflap/mf-heuristics.c @@ -1,5 +1,5 @@ /* Mudflap: narrow-pointer bounds-checking by tree rewriting. - Copyright (C) 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2009 Free Software Foundation, Inc. Contributed by Frank Ch. Eigler and Graydon Hoare @@ -7,28 +7,22 @@ This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free -Software Foundation; either version 2, or (at your option) any later +Software Foundation; either version 3, or (at your option) any later version. -In addition to the permissions in the GNU General Public License, the -Free Software Foundation gives you unlimited permission to link the -compiled version of this file into combinations with other programs, -and to distribute those combinations without any restriction coming -from the use of this file. (The General Public License restrictions -do apply in other respects; for example, they cover modification of -the file, and distribution when not linked into a combine -executable.) - GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 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. */ +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +. */ #include "config.h" @@ -42,8 +36,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #endif -extern char _end; -extern char _start; +extern char _end[]; +extern char ENTRY_POINT[]; /* Run some quick validation of the given region. @@ -164,10 +158,11 @@ __mf_heuristic_check (uintptr_t ptr, uintptr_t ptr_high) } - /* The third heuristic is to approve all accesses between _start and _end, - which should include all text and initialized data. */ + /* The third heuristic is to approve all accesses between _start (or its + equivalent for the given target) and _end, which should include all + text and initialized data. */ if (__mf_opts.heur_start_end) - if (ptr >= (uintptr_t) & _start && ptr_high <= (uintptr_t) & _end) + if (ptr >= (uintptr_t) & ENTRY_POINT && ptr_high <= (uintptr_t) & _end) return 1; /* uncacheable */ return 0; /* unknown */