From: Shalom Bresticker (firstname.lastname@example.org)
Date: Fri Aug 17 2001 - 02:00:01 PDT
The following reply was made to PR errata/16; it has been noted by GNATS.
From: Shalom Bresticker <email@example.com>
Subject: Re: errata/16: 19.7 `line - meaning of level parameter is unclear
Date: Fri, 17 Aug 2001 11:55:17 +0300 (IDT)
On Thu, 16 Aug 2001, Adam Krolnik wrote:
> >If, for CPP, 'linenum' and "filename" were enough, why does Verilog need >'level' as well ?
> > What does it add ? Why can't it just be a comment ?
> CPP had the parameter and so we deferred to their wisdom.
> Today this information is a comment. People that write source to
> source translators (glorified preprocessors) can now identify the
> actual source of a line of code, rather than having to accept the
> location of the generated file.
> E.g. run cpp on some of the C include files and look at the output,
> you can see what file a given line is from.
So if you are deferring to CPP's wisdom, why change preprocessor outputs into
preprocessor inputs ? In CPP, #line has no level parameter and filename is
> > And a preprocessor may not know, for example, whether a file is included > or not.
> If they don't know, CPP doesn't include a value. We translated that
> 'no value' to the constant 0.
> > But if the LRM says it can be a full or relative path name, that seems to >imply that it has real meaning.
> We wrote it that way because that is conceptually what should be there.
> If we simply put, "any string value can be put there..." then nobody
> would know really what this is used for.
Why ? Look at the Gnu CPP description. It says that filename is used for the
compiler reports, but it can be any string constant. That's in short, look at
the exact description. I don't have it with me at the moment.
This archive was generated by hypermail 2.1.4
: Mon Jul 08 2002 - 12:54:44 PDT
sponsored by Boyd Technology, Inc.