diff mbox

Fix enum operands exchange in ipa-inline.c

Message ID 1421055379586.65441@caviumnetworks.com
State New
Headers show

Commit Message

Hurugalawadi, Naveen Jan. 12, 2015, 9:36 a.m. UTC
Hi Richard,

Thanks for the quick review and comments.

Please find attached the modified patch as per your suggestion.

Thanks,
Naveen

Comments

Richard Biener Jan. 12, 2015, 9:46 a.m. UTC | #1
On Mon, Jan 12, 2015 at 10:36 AM, Hurugalawadi, Naveen
<Naveen.Hurugalawadi@caviumnetworks.com> wrote:
> Hi Richard,
>
> Thanks for the quick review and comments.
>
> Please find attached the modified patch as per your suggestion.

Ok.

Richard.

> Thanks,
> Naveen
> ________________________________________
> From: Richard Biener <richard.guenther@gmail.com>
> Sent: Monday, January 12, 2015 2:48 PM
> To: Hurugalawadi, Naveen
> Cc: gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH] Fix enum operands exchange in ipa-inline.c
>
> On Mon, Jan 12, 2015 at 7:58 AM, Hurugalawadi, Naveen
> <Naveen.Hurugalawadi@caviumnetworks.com> wrote:
>> Hi,
>>
>> Sorry, Had forgot the ChangeLog.
>
> Ok, but please properly wrap the long lines, put '? gimple_...' on a new
> one.
>
> Thanks,
> Richard.
>
>> ChangeLog
>> 2015-01-12  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
>>
>>         * ipa-inline.c (inline_small_functions): Swap the operands in
>>         enum.
>>
>> Thanks,
>> Naveen
Rainer Orth Jan. 21, 2015, 9:26 a.m. UTC | #2
Richard Biener <richard.guenther@gmail.com> writes:

> On Mon, Jan 12, 2015 at 10:36 AM, Hurugalawadi, Naveen
> <Naveen.Hurugalawadi@caviumnetworks.com> wrote:
>> Hi Richard,
>>
>> Thanks for the quick review and comments.
>>
>> Please find attached the modified patch as per your suggestion.
>
> Ok.

Unfortunately, this patch causes an ICE on Solaris 10:

FAIL: g++.dg/ipa/pr64049-1.C  -std=gnu++11 (internal compiler error)
FAIL: g++.dg/ipa/pr64049-1.C  -std=gnu++11 (test for excess errors)
FAIL: g++.dg/ipa/pr64049-1.C  -std=gnu++14 (internal compiler error)
FAIL: g++.dg/ipa/pr64049-1.C  -std=gnu++14 (test for excess errors)
FAIL: g++.dg/ipa/pr64049-1.C  -std=gnu++98 (internal compiler error)
FAIL: g++.dg/ipa/pr64049-1.C  -std=gnu++98 (test for excess errors)

/vol/gcc/src/hg/trunk/local/gcc/testsuite/g++.dg/ipa/pr64049-1.C:34:1: internal compiler error: Segmentation Fault
0x88b777c crash_signal
        /vol/gcc/src/hg/trunk/local/gcc/toplev.c:381

  cc1plus -fpreprocessed pr64049-1.ii -quiet -O3 -fdump-ipa-inline -o pr64049-1.s

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1 (LWP 1)]
0xfee0645c in strlen () from /lib/libc.so.1
(gdb) where
#0  0xfee0645c in strlen () from /lib/libc.so.1
#1  0xfee61aee in _ndoprnt () from /lib/libc.so.1
#2  0xfee6469e in fprintf () from /lib/libc.so.1
#3  0x08ed5f04 in inline_small_functions ()
    at /vol/gcc/src/hg/trunk/local/gcc/ipa-inline.c:1718
#4  0x08ed84e4 in ipa_inline ()
    at /vol/gcc/src/hg/trunk/local/gcc/ipa-inline.c:2178
#5  (anonymous namespace)::pass_ipa_inline::execute (this=<optimized out>)
    at /vol/gcc/src/hg/trunk/local/gcc/ipa-inline.c:2550
#6  0x087f94b3 in execute_one_pass (pass=0x98f7fd0)
    at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2326
#7  0x087f9fdd in execute_ipa_pass_list (pass=0x98f7fd0)
    at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2723
#8  0x0850cd02 in ipa_passes ()
    at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2133
#9  symbol_table::compile (this=this@entry=0xfea09000)
    at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2221
#10 0x0850eda7 in compile (this=0xfea09000)
    at /vol/gcc/src/hg/trunk/local/gcc/timevar.h:110
#11 symbol_table::finalize_compilation_unit (this=0xfea09000)
    at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2370
#12 0x082fcd2e in cp_write_global_declarations ()
    at /vol/gcc/src/hg/trunk/local/gcc/cp/decl2.c:4750
#13 0x088b7819 in compile_file ()
    at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:606
#14 0x091fa5e9 in do_compile ()
    at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:2045
#15 toplev::main (this=0x804759f, argc=8, argv=0x80475e0)
    at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:2142
#16 0x091fb27f in main (argc=8, argv=0x80475e0)
    at /vol/gcc/src/hg/trunk/local/gcc/main.c:38

On both Solaris 11 and Linux, I find

Considering static EnumStatusCode ValueHelper::getLocalizedText(const ValueStruct*, LocalizedText&)/26 with 17 size
 to be inlined into static LocalizedText ValueHelper::getLocalizedText(const ValueStruct*)/15 in (null):0

Solaris 10 libc cannot print a NULL pointer, but SEGVs.

Please fix.

	Rainer
diff mbox

Patch

--- gcc/ipa-inline.c	2015-01-12 14:55:25.291575873 +0530
+++ gcc/ipa-inline.c	2015-01-12 14:56:01.795575453 +0530
@@ -1730,10 +1730,12 @@  inline_small_functions (void)
 		   " to be inlined into %s/%i in %s:%i\n"
 		   " Estimated badness is %f, frequency %.2f.\n",
 		   edge->caller->name (), edge->caller->order,
-		   edge->call_stmt ? "unknown"
-		   : gimple_filename ((const_gimple) edge->call_stmt),
-		   edge->call_stmt ? -1
-		   : gimple_lineno ((const_gimple) edge->call_stmt),
+		   edge->call_stmt
+		   ? gimple_filename ((const_gimple) edge->call_stmt)
+		   : "unknown",
+		   edge->call_stmt
+		   ? gimple_lineno ((const_gimple) edge->call_stmt)
+		   : -1,
 		   badness.to_double (),
 		   edge->frequency / (double)CGRAPH_FREQ_BASE);
 	  if (edge->count)