Bug 57480 - floating point exception - g++ 2.96-98
Summary: floating point exception - g++ 2.96-98
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: gcc
Version: 7.1
Hardware: i386
OS: Linux
medium
low
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2001-12-13 18:46 UTC by Dan Maas
Modified: 2007-04-18 16:38 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2004-10-02 01:05:04 UTC
Embargoed:


Attachments (Terms of Use)

Description Dan Maas 2001-12-13 18:46:40 UTC
Description of Problem:
This short C++ fragment causes gcc 2.96-98 to print "Internal error: 
Floating point exception" when compiled with -O2 (no FPE with -O0).

(yes, I know this code won't work correctly even if it did compile...)

I've seen other floating point exception bugs in Bugzilla, but they were 
all for earlier versions of gcc, and marked CLOSED.

Steps to Reproduce:
1. g++ bugcase.cpp -c -O2

// bugcase.cpp

template<class T>
class MyArray {
public:
	T* p;
	int nused;
	
	void append(T foo)
	{
		p[nused++] = foo;
	}
};

typedef float v3_t[3];

void test(v3_t v)
{
	MyArray<v3_t> a;
	a.append(v);
}

Comment 1 Richard Henderson 2004-10-02 01:05:04 UTC
As of gcc 3.2, we issue the diagnostic

z.c: In member function `void MyArray<T>::append(T) [with T=float[3]]':
z.c:20:   instantiated from here
z.c:11: ISO C++ forbids assignment of arrays

which is probably what we were trying to do beforehand, and got confused.


Note You need to log in before you can comment on or make changes to this bug.