abs() function compiles with /Ox but not with /Od - SOLVED

Phil,

Thank you… Thank you!

You were absolutely correct. The abs() function is an intrinsic, and adding
the /Oi option did the trick!

Many thanks!

…now if I could only get Windbg to display my local symbols… sigh!

-bill
Bill Christie
Software Engineer
Link Engineering Company
Plymouth, Michigan, 48170

www.linkeng.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Barila, Phil
Sent: Tuesday, December 12, 2000 1:37 PM
To: NT Developers Interest List
Subject: [ntdev] RE: abs() function compiles with /Ox but not with /Od

I haven’t seen this exact problem, but I think I’ve seen
something similar,
maybe it will help… My checked build driver always worked, but the free
build would die at runtime. It turned out that the checked build
environment, in addition to disabling optimizations with /Od, enabled
intrinsics with /Oi. But the free build env disabled the
intrinsics. Since
the intrinsic functions I used were declared intrinsic in a header, the
compiler and linker wouldn’t complain. Is abs() an intrinsic? Is /Oi
included in /Ox? Does adding /Oi with /Od fix it?

Hope this helps,

Phil
* Philip D. Barila | (503) 264-8386
* Intel Corp. | M/S JF2-53 Office JF2-2-G6
* Storage Architecture and Performance
* Internet Systems Lab

-----Original Message-----
From: Bill Christie [mailto:xxxxx@linkeng.com]
Sent: Tuesday, December 12, 2000 9:59 AM
To: NT Developers Interest List
Subject: [ntdev] abs() function compiles with /Ox but not with /Od

Hi all,

I’m converting a driver from NT4 to 2000, and am experiencing my share of
problems, most with windbg, but now I’ve got a strange problem during the
BUILD process.

I’m getting a C4013 compilation error on the “abs()” function
(the absolute
value function), but only when the file is compiled with the /Od
(optimizations disabled) option. I’m setting MSC_OPTIMIZATION=/Od in my
sources file.

c:\projects\c\srvolcr\svlc_main.c(253) : error C4013: ‘abs’ undefined;
assuming extern returning int

When I compile the same file with /Ox (maximum optimization), the file
compiles without error.

Any ideas?

-bill

Bill Christie
Link Engineering Company
Plymouth, Michigan, 48170

www.linkeng.com


You are currently subscribed to ntdev as: xxxxx@intel.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)


You are currently subscribed to ntdev as: xxxxx@linkeng.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)

Glad I could help once, so I’ll take another stab. Pardon me for asking the
obvious, but did you install the OS symbols and set your Symbol File Path
accordingly? And did you either add your own directory to that path, or
copy your .pdb to the directory with the OS symbols?

If that isn’t it, then I don’t have a clue, as the 1.00.6 'bag works pretty
well for me.

Phil

-----Original Message-----
From: Bill Christie [mailto:xxxxx@linkeng.com]
Sent: Tuesday, December 12, 2000 10:52 AM
To: NT Developers Interest List
Cc: xxxxx@intel.com
Subject: abs() function compiles with /Ox but not with /Od - SOLVED

Phil,

Thank you… Thank you!

You were absolutely correct. The abs() function is an intrinsic, and adding
the /Oi option did the trick!

Many thanks!

…now if I could only get Windbg to display my local symbols… sigh!

-bill
Bill Christie
Software Engineer
Link Engineering Company
Plymouth, Michigan, 48170

www.linkeng.com