Bug 157174

Summary: g++4 does not work with system include file <limits> if -pedantic option is given
Product: [Fedora] Fedora Reporter: roebel <roebel>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 3CC: sundaram
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: 3.4.4-1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-09-05 08:44:39 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:
Bug Depends On:    
Bug Blocks: 164806    

Description roebel 2005-05-08 09:44:01 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (compatible; Konqueror/3.3; Linux) (KHTML, like Gecko)

Description of problem:
g++4 -D_Pm2_VERSION_=\"0.9-beta3\" -D_Pm2_USER_=\"roebel\" -I. -I../LibSrc   
-O3 -funroll-loops -pthread   -Wall  -pedantic    -o ../obj_/Pm2Sdif.o -c 
Pm2Sdif.cpp 
/usr/include/c++/3.4.3/limits:996: error: floating-point literal cannot appear 
in a constant-expression 
/usr/include/c++/3.4.3/limits:1009: error: field initializer is not constant 
/usr/include/c++/3.4.3/limits:1052: error: floating-point literal cannot 
appearin a constant-expression 
/usr/include/c++/3.4.3/limits:1065: error: field initializer is not constant 
/usr/include/c++/3.4.3/limits:1108: error: floating-point literal cannot 
appearin a constant-expression 
/usr/include/c++/3.4.3/limits:1122: error: field initializer is not constant 
/u/formes/share/include/sdif.h:251: warning: â_sdif_h_cvs_revision_â defined 
but not used 
m 

Version-Release number of selected component (if applicable):
gcc4-c++-4.0.0-0.41.fc3


How reproducible:
Always

Steps to Reproduce:
1. compile a c++ file that includes <limits> and give -pedantic option 
2. 
3. 
   

Actual Results:  see above 

Expected Results:  gcc 3.4 did compile! 

Additional info:

Comment 1 Jakub Jelinek 2005-05-08 10:23:52 UTC
The error is correct.  libstdc++-v3 was fixed in GCC 4.0:
2005-01-31  Mark Mitchell  <mark>

        * include/std/std_limits.h (numeric_limits<float>::has_denorm):
        Add required cast.
        (numeric_limits<double>::has_denorm): Likewise.
        (numeric_limits<long double>::has_denorm): Likewise.


Comment 2 Jakub Jelinek 2005-05-27 15:22:43 UTC
Should be fixed in gcc-3.4.4-1.