Bug 963485

Summary: bad code generation
Product: Red Hat Enterprise Linux 6 Reporter: Jerry Quinn <jlquinn>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED NOTABUG QA Contact: qe-baseos-tools-bugs
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.4CC: mpolacek
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-07-19 03:17:36 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Bug testcase none

Description Jerry Quinn 2013-05-15 21:35:21 UTC
Created attachment 748520 [details]
Bug testcase

Description of problem:

The attached code segfaults when compiled with g++ -fPIC -O3 and works at -O2.

Version-Release number of selected component (if applicable):

gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) 


How reproducible:

g++ -fPIC -O3 bad.cc
./a.out

Steps to Reproduce:
1.
2.
3.
  
Actual results:

segfault

Expected results:

terminate

Additional info:

gcc 4.7.2 compiles correctly at -O3

Comment 2 Jakub Jelinek 2013-07-19 03:17:36 UTC
The testcase is bogus.  First of all, if you run it without arguments, it will of course crash already inside of atoi.  But if you pass it argument that is not a multiple of pointer size, then the array of pointers is necessary misaligned and the testcase doesn't try to adjust it for that case (usually programs first put the aggregates that need to be aligned and only after that what doesn't need special alignment, you do it the other way around).