Bug 54556
Summary: | gcc generates "Internal compiler error" for simple if statement | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | [Retired] Red Hat Linux | Reporter: | p929001 | ||||||
Component: | xemacs | Assignee: | Trond Eivind Glomsrxd <teg> | ||||||
Status: | CLOSED NOTABUG | QA Contact: | Brian Brock <bbrock> | ||||||
Severity: | high | Docs Contact: | |||||||
Priority: | medium | ||||||||
Version: | 7.1 | ||||||||
Target Milestone: | --- | ||||||||
Target Release: | --- | ||||||||
Hardware: | i386 | ||||||||
OS: | Linux | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2001-10-12 09:32:47 UTC | Type: | --- | ||||||
Regression: | --- | Mount Type: | --- | ||||||
Documentation: | --- | CRM: | |||||||
Verified Versions: | Category: | --- | |||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||
Embargoed: | |||||||||
Attachments: |
|
Description
p929001
2001-10-12 08:44:04 UTC
Created attachment 33981 [details]
The source code that generates the problem (line 42)
Created attachment 33982 [details]
Header file included in the source file
There is something very wrong with the code actually, but there was a bug in diagnostic code for this in gcc up to 2.96-85 (ie. anything above 2.96-85, such as e.g. 2.96-9[89] should tell you: /root/Array.cpp: In method `Mytype Array<Mytype>::operator[] (const int &) const': /root/Array.cpp:42: universal-character-name `\u00a0' not valid in identifier /root/Array.cpp:42: universal-character-name `\u00a0' not valid in identifier /root/Array.cpp:42: sorry, not implemented: universal characters in identifiers ). The problem is that you're using '\xa0' character instead of space in the if condition. Found the error same time as you (Actually got a "Mid-air collision"). By the way, there is no package update for the gcc you mention? (I tried updating gcc before submitting the bug). This is what I wanted to submit this time: Tried compiling on a Sun Solaris (Sun Enterprise 250) This gives the error: Array.cpp: In method `Mytype Array<Mytype>::operator [](const int &) const': Array.cpp:42: parse error before character 0240 Array.cpp:45: confused by earlier errors, bailing out Seems there is a hidden character in the line in question. Removing this character resolves the problem. The character can be seen with mc or vi, but not more, less, joe, emacs or xemacs. The file was created with XEmacs, which I have noticed tends to "stick" modifier keys one more character press. For example, when I use Ctrl-(left arrow) to move word by word, the next character press (e.g. right arrow) becomes Ctrl modified. Thus the character is probably created by AltGr-Space, as I have to press AltGr-' to get the pipe sign for the ||. This one could say this is a bug in XEmacs, which strongly affects gcc. With joe and less it depends how they are configured (ie. if they are configured for ASCII or LatinN (in the latter case they don't show anything, since '\xa0' should be printed as space. As for XEmacs, I'll let Trond say his word. I've never seen XEmacs use sticky keys, unless you ask for it (iso-accents-mode or other input methods). Jakub gave the reason why it isn't displayed. To display more info on it, go to it's location and do "C-u C-x =". |