[Bug c++/57362] [4.8/4.9 Regression] unsupported __attribute__((target())) values appear to cause loop and/or pathological behavior

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed May 22 08:17:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57362

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
      Known to work|                            |4.7.3
            Version|unknown                     |4.8.1
           Keywords|                            |ice-on-invalid-code
   Last reconfirmed|                            |2013-05-22
                 CC|                            |tmsriram at google dot com
     Ever confirmed|0                           |1
            Summary|unsupported                 |[4.8/4.9 Regression]
                   |__attribute__((target()))   |unsupported
                   |values appear to cause loop |__attribute__((target()))
                   |and/or pathological         |values appear to cause loop
                   |behavior                    |and/or pathological
                   |                            |behavior
   Target Milestone|---                         |4.8.1

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Works fine with the C compiler, for the C++ compiler we ICE:

... lots of errors ...
t.c:18:5: error: No dispatcher found for align-stringops
 int foo(void) { return 1; }
     ^
t.c:187:20: internal compiler error: Segmentation fault
       result = foo();
                    ^
0xc647e5 crash_signal
        /space/rguenther/src/svn/gcc-4_8-branch/gcc/toplev.c:332
0x53f4cb contains_struct_check(tree_node*, tree_node_structure_enum, char
const*, int, char const*)
        /space/rguenther/src/svn/gcc-4_8-branch/gcc/tree.h:3797
0x9b6742 build_fold_addr_expr_loc(unsigned int, tree_node*)
        /space/rguenther/src/svn/gcc-4_8-branch/gcc/fold-const.c:7693
0xf498fa add_condition_to_bb
        /space/rguenther/src/svn/gcc-4_8-branch/gcc/config/i386/i386.c:28536
0xf4a6d0 dispatch_function_versions
        /space/rguenther/src/svn/gcc-4_8-branch/gcc/config/i386/i386.c:28951
0xf4c178 ix86_generate_version_dispatcher_body
        /space/rguenther/src/svn/gcc-4_8-branch/gcc/config/i386/i386.c:29517


you cannot query for acceptable values by re-annotating the same decl.

GCC 4.7 happily says

...
t.c:176:5: error: redefinition of 'int foo()'
t.c:2:5: error: 'int foo()' previously defined here
t.c: At global scope:
t.c:178:13: error: attribute(target("avx256-split-unaligned-store")) is unknown
t.c: In function 'int foo()':
t.c:178:5: error: redefinition of 'int foo()'
t.c:2:5: error: 'int foo()' previously defined here
t.c: At global scope:
t.c:180:13: error: attribute(target("rtm")) is unknown
t.c: In function 'int foo()':
t.c:180:5: error: redefinition of 'int foo()'
t.c:2:5: error: 'int foo()' previously defined here

and does not ICE.

Google folks - please have a look.



More information about the Gcc-bugs mailing list