https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62152

            Bug ID: 62152
           Summary: ICE caused by using __builtin_ia32_pause() inside
                    C++11 noexcept functions on Windows
           Product: gcc
           Version: 4.9.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: lh_mouse at 126 dot com

// ice.cpp
void foo() noexcept {
    __builtin_ia32_pause();
    // also reproducable with ::_mm_pause(); (requires #include <immintrins.h>)
}
// EOF

The above code will result in an ICE when compiled to i686 code:

    E:\Desktop>g++ ice.cpp -std=c++14 -m32 -c
    ice.cpp: In function 'void foo()':
    ice.cpp:3:1: internal compiler error: in ix86_compute_frame_layout, at
config/i386/i386.c:9510
     }
     ^
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See <http://sourceforge.net/projects/mingw-w64> for instructions.

If compiled to x86_64 code it won't ICE on Windows.

Reply via email to