This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Add missing requirement to crossmodule-indircall-1a.c
- From: jb999 at gmx dot de
- To: "Jeff Law" <law at redhat dot com>, gcc-patches at gcc dot gnu dot org
- Date: Thu, 23 Oct 2014 16:30:38 +0200
- Subject: Re: [PATCH] Add missing requirement to crossmodule-indircall-1a.c
- Authentication-results: sourceware.org; auth=none
"Jeff Law" <law@redhat.com>:
> On 10/21/14 12:21, jb999@gmx.de wrote:
> > "Jeff Law" <law@redhat.com>:
> >> On 10/21/14 16:13, Haswell wrote:
> >>> The additional source must have the same requirement crossmodule-indircall-1.c has.
> >>>
> >>> * crossmodule-indircall-1a.c: Add missing requirement.
> >> Why? When used by crossmodule-indircall-1.c we'll have already tested
> >> the marker and when used by itself, it does nothing.
> >
> >> So I don't see why you think a marker is needed for this source file.
> >
> > When configuring --disable-lto it gets compiled twice:
> >
> > FAIL: gcc.dg/tree-prof/crossmodule-indircall-1a.c compilation, -fprofile-generate -D_PROFILE_GENERATE
> > UNRESOLVED: gcc.dg/tree-prof/crossmodule-indircall-1a.c execution, -fprofile-generate -D_PROFILE_GENERATE
> > UNRESOLVED: gcc.dg/tree-prof/crossmodule-indircall-1a.c compilation, -fprofile-use -D_PROFILE_USE
> > UNRESOLVED: gcc.dg/tree-prof/crossmodule-indircall-1a.c execution, -fprofile-use -D_PROFILE_USE
> I'd recommend looking deeper. I believe that file should be collapsing
> down to main () { return 0; } when LTO is not enabled.
I'm not a dejagnu expert, but this is what happens:
/tmp/build/gcc/xgcc -B/tmp/build/gcc/ /tmp/gcc-4.9.1/gcc/testsuite/gcc.dg/tree-prof/crossmodule-indircall-1a.c -fno-diagnostics-show-caret -fdiagnostics-color=never /tmp/gcc-4.9.1/gcc/testsuite/gcc.dg/tree-prof/crossmodule-indircall-1a.c -fprofile-generate -D_PROFILE_GENERATE -lm -o /tmp/build/gcc/testsuite/gcc/crossmodule-indircall-1a.x01
/tmp/cc4rrWCn.o: In function `main':
crossmodule-indircall-1a.c:(.text+0x0): multiple definition of `main'
/tmp/ccgMlXGi.o:crossmodule-indircall-1a.c:(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
compiler exited with status 1