[PATCH] better warning for section conflict
Richard Guenther
richard.guenther@gmail.com
Wed Jun 8 10:36:00 GMT 2011
On Wed, Jun 8, 2011 at 12:07 PM, Andi Kleen <andi@firstfloor.org> wrote:
> When erroring on a section type conflict print both locations.
> This makes it a lot easier to track them down, especially in LTO.
>
> This is still not quite good before it prints only one
> conflict pair currently instead of all, but at least all
> the problems can be fixed iteratively now.
>
> Better would be likely to have a majority vote and print
> everyone disagreeing.
>
> Passes bootstrap & test suite on x86_64-linux. Ok to commit?
Ok.
Thanks,
Richard.
> 2011-06-06 Andi Kleen <ak@linux.intel.com>
>
> * varasm.c (get_section): Print location of other conflict
> for section conflicts.
> ---
> gcc/varasm.c | 6 +++++-
> 1 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/gcc/varasm.c b/gcc/varasm.c
> index f46c21b..5f4f796 100644
> --- a/gcc/varasm.c
> +++ b/gcc/varasm.c
> @@ -313,7 +313,11 @@ get_section (const char *name, unsigned int flags, tree decl)
> if (decl == 0)
> decl = sect->named.decl;
> gcc_assert (decl);
> - error ("%+D causes a section type conflict", decl);
> + error ("%+D causes a section type conflict with %D",
> + decl, sect->named.decl);
> + if (decl != sect->named.decl)
> + inform (DECL_SOURCE_LOCATION (sect->named.decl),
> + "%qD was declared here", sect->named.decl);
> /* Make sure we don't error about one section multiple times. */
> sect->common.flags |= SECTION_OVERRIDE;
> }
> --
> 1.7.5.3
>
> --
> ak@linux.intel.com -- Speaking for myself only.
>
More information about the Gcc-patches
mailing list