Hi list,
With the attached file and any gcc:
$ gcc c29329.c && ./a.out
PASSED
With the most recent publicly available opencc:
$ opencc -v
Open64 Compiler Suite: Version 5.0
Built on: 2011-11-09 11:16:36 +0800
Thread model: posix
GNU gcc version 4.2.0 (Open64 5.0 driver)
$ opencc c29329.c && ./a.out
FAILED
- there is no need to turn on any optimization to show the issue
- the test case is very small and I believe is well-defined with regard
to standard conformance
- it looks like the offset generated for the access through g_2057 is
just wrong
- old generation opencc based on gnu3 FR do not exhibit the problem
Is someone aware of this issue ? Has anyone a fix for this ?
Thanks,
-- C
STMicroelectronics
Christophe MONAT - BP47
12 rue Jules Horowitz
FR-38019 Grenoble Cedex
Phone: +33 476584252
#include <stdio.h>
typedef int int32_t;
struct foo {
int32_t f4;
} g_920[10][8][3];
int32_t *g_2057 = &g_920[8][1][2].f4;
int main(int argc, char *argv[]) {
*g_2057 = 4;
if(g_920[8][1][2].f4!=4) {
puts("FAILED");
return 1;
} else {
puts("PASSED");
return 0;
}
}
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
Open64-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/open64-devel