Bug 44620 - gcc -fvisibility-ms-compat crash when throwing const char*
Summary: gcc -fvisibility-ms-compat crash when throwing const char*
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: c++ (show other bugs)
Version: 4.4.4
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2010-06-21 21:11 UTC by Soren Soe
Modified: 2011-09-29 17:49 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail: 4.3.2, 4.4.3, 4.6.0
Last reconfirmed: 2010-06-28 00:55:19


Attachments
crash.ii (86 bytes, application/octet-stream)
2010-06-21 21:13 UTC, Soren Soe
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Soren Soe 2010-06-21 21:11:24 UTC
This simple source file causes gcc to crash when compiled with -fvisibility-ms-compat:

void foo()
{ 
  throw "Help!";
}

% gcc -v -save-temps -c -fvisibility-ms-compat crash.cxx 

Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../../src/lnx32/configure --prefix=/tools/batonroot/rodin/devkits/lnx32/gcc-4.4.4 --enable-languages=c,c++
Thread model: posix
gcc version 4.4.4 (GCC) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-c' '-fvisibility-ms-compat' '-mtune=generic'
 /tools/batonroot/rodin/devkits/lnx32/gcc-4.4.4/libexec/gcc/i686-pc-linux-gnu/4.4.4/cc1plus -E -quiet -v -D_GNU_SOURCE crash.cxx -mtune=generic -fvisibility-ms-compat -fpch-preprocess -o crash.ii
ignoring nonexistent directory "/tools/batonroot/rodin/devkits/lnx32/gcc-4.4.4/lib/gcc/i686-pc-linux-gnu/4.4.4/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /tools/batonroot/rodin/devkits/lnx32/gcc-4.4.4/lib/gcc/i686-pc-linux-gnu/4.4.4/../../../../include/c++/4.4.4
 /tools/batonroot/rodin/devkits/lnx32/gcc-4.4.4/lib/gcc/i686-pc-linux-gnu/4.4.4/../../../../include/c++/4.4.4/i686-pc-linux-gnu
 /tools/batonroot/rodin/devkits/lnx32/gcc-4.4.4/lib/gcc/i686-pc-linux-gnu/4.4.4/../../../../include/c++/4.4.4/backward
 /usr/local/include
 /tools/batonroot/rodin/devkits/lnx32/gcc-4.4.4/include
 /tools/batonroot/rodin/devkits/lnx32/gcc-4.4.4/lib/gcc/i686-pc-linux-gnu/4.4.4/include
 /tools/batonroot/rodin/devkits/lnx32/gcc-4.4.4/lib/gcc/i686-pc-linux-gnu/4.4.4/include-fixed
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-c' '-fvisibility-ms-compat' '-mtune=generic'
 /tools/batonroot/rodin/devkits/lnx32/gcc-4.4.4/libexec/gcc/i686-pc-linux-gnu/4.4.4/cc1plus -fpreprocessed crash.ii -quiet -dumpbase crash.cxx -mtune=generic -auxbase crash -version -fvisibility-ms-compat -o crash.s
GNU C++ (GCC) version 4.4.4 (i686-pc-linux-gnu)
	compiled by GNU C version 4.4.4, GMP version 5.0.1, MPFR version 2.4.2.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: b301e3deb4f2be9f847ad7d75351dd84
crash.cxx:3: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

I am not sure how to attach the .ii file, but the content is pasted here:

# 1 "crash.cxx"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "crash.cxx"
void foo()
{
  throw "Help!";
}
Comment 1 Soren Soe 2010-06-21 21:13:32 UTC
Created attachment 20971 [details]
crash.ii

Attached crash.ii
Comment 2 Andrew Pinski 2010-06-28 00:55:19 UTC
Confirmed.
Comment 3 Paolo Carlini 2011-09-29 17:49:58 UTC
Fixed in 4.6.x and mainline. Not a regression.