The BullseyeCoverage bug report, if it is of any interest.
-----Original Message-----
From: Shahar Talmi [mailto:xxxxx@safend.com]
Sent: Thursday, September 23, 2004 12:33 PM
To: ‘Steve Cornett’
Subject: RE: BullseyeCoverage Evaluation Request
Hi Steve,
I tried using your product to test the software I’m working on but I
couldn’t get the Bulls-eye Compiler to compile my code. After some further
investigation I’ve found the piece of code that your compiler cannot compile
although it is completely legal. Here it is:
#define BC
#define E(val) val
#define A E(B) ## C
void main()
{
A;
}
In this simple code segment “A” translates into “E(B) ## C” which translates
to “B ## C” which translates to “BC” which translates to “”, which is
completely legal but your compiler gives me the following errors:
bull.cpp(7) : error C2065: ‘B’ : undeclared identifier
bull.cpp(7) : error C2146: syntax error : missing ‘;’ before identifier ‘C’
bull.cpp(7) : error C2065: ‘C’ : undeclared identifier
Apparently something in the preprocessor went wrong and the code translated
this way: “A” -> “E(B) ## C” -> “B C” -> compilation error, B and C are
separated by a space.
The weirdest thing is that when I tried to run “cl bull.cpp /EP” in order to
see the code that your preprocessor produced I got:
void main()
{
;
}
Which is correct(!) Is it possible that your compiler uses the preprocessor
in a different way that makes it produce the erroneous code?
The following piece of code compiles correctly (that might help you to find
the problem, notice that I wrote B instead of E(B)):
#define BC
#define E(val) val
#define A B ## C
void main()
{
A;
}
The code in my program that causes this problem is auto-generated by a
Microsoft pre-processor named WPP. This code is a must-have in my software
and I cannot change it - so this means I cannot use your software to test my
code until this problem is fixed.
For the meantime I have solved this problem by first running the
preprocessor on the files and then compiling the produced files (and then
overwriting the files I compiled with the originals so I will be able to
browse the sources in the Coverage Browser), but this is highly inefficient
and consumes too much time for me each time I need to re-compile the
program.
Thanks for your help,
Shahar
-----Original Message-----
From: Steve Cornett [mailto:xxxxx@bullseye.com]
Sent: Wednesday, September 22, 2004 9:30 PM
To: xxxxx@safend.com
Subject: RE: BullseyeCoverage Evaluation Request
Here is your 30-day evaluation license of BullseyeCoverage. You can
download the software from http://www.bullseye.com/download/. Your license
key is ########################. This license key works for all the
platforms you requested.
BullseyeCoverage is sold on a floating license basis - any number of users
may use a single license, but only one at a time. Pricing and purchasing
information is at http://www.bullseye.com/cgi-bin/store. All prices include
technical support. Prices are discounted for more than 5 users and volume
licensing is available for 20+ users.
Let me know of any questions or comments.
Sincerely,
Steve Cornett