c/814: preprocessing error: concatination of negative integers as parameter in constants

sashak@smlink.com sashak@smlink.com
Wed Nov 15 09:16:00 GMT 2000


>Number:         814
>Category:       c
>Synopsis:       preprocessing error: concatination of negative integers as parameter in constants
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Nov 15 09:16:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     sashak@smlink.com
>Release:        unknown-1.0
>Organization:
>Environment:
Linux-2.2.16, gcc-2.96
>Description:
 For instance we have such macro definition:
#define Exp10(pow) 1e##pow

Follow expression will be preproceced:

Exp10(-5)  --> 1e- 5  (with blank symbol after sign).

Of course it fails during compilation.
 
>How-To-Repeat:
#define Exp10(pow) 1e##pow

double test_exp(int pow) {
  return Exp10(pow);
}
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the Gcc-bugs mailing list