Bug 50700 - [4.6/4.7 Regression] __builtin_object_size computed wrong
Summary: [4.6/4.7 Regression] __builtin_object_size computed wrong
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: middle-end (show other bugs)
Version: 4.6.1
: P3 normal
Target Milestone: 4.6.2
Assignee: Richard Biener
URL:
Keywords: wrong-code
Depends on:
Blocks:
 
Reported: 2011-10-12 09:56 UTC by Richard Biener
Modified: 2011-10-12 14:26 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Known to work: 4.5.3
Known to fail:
Last reconfirmed: 2011-10-12 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Richard Biener 2011-10-12 09:56:01 UTC
extern void abort (void);
struct S {
    int len;
    char s[0];
};
int main()
{
  char buf[sizeof (struct S) + 32];
  if (__builtin_object_size (((struct S *)&buf[0])->s, 1) != 32)
    abort ();
  return 0;
}
Comment 1 Richard Biener 2011-10-12 09:56:33 UTC
I have a patch.
Comment 2 Richard Biener 2011-10-12 13:19:38 UTC
Author: rguenth
Date: Wed Oct 12 13:19:34 2011
New Revision: 179850

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179850
Log:
2011-10-12  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50700
	* tree-object-size.c (addr_object_size): Simplify and treat
	MEM_REF bases consistently.

	* gcc.dg/builtin-object-size-12.c: New testcase.

Added:
    trunk/gcc/testsuite/gcc.dg/builtin-object-size-12.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-object-size.c
Comment 3 Richard Biener 2011-10-12 13:22:18 UTC
Author: rguenth
Date: Wed Oct 12 13:22:12 2011
New Revision: 179851

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179851
Log:
2011-10-12  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50700
	* tree-object-size.c (addr_object_size): Simplify and treat
	MEM_REF bases consistently.

	* gcc.dg/builtin-object-size-12.c: New testcase.

Added:
    branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/builtin-object-size-12.c
Modified:
    branches/gcc-4_6-branch/gcc/ChangeLog
    branches/gcc-4_6-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_6-branch/gcc/tree-object-size.c
Comment 4 Richard Biener 2011-10-12 14:26:42 UTC
Fixed.