PRB: Cannot Base Formal Parameter on Previous Formal Parameter

ID Number: Q66777

6.00 6.00a 6.00ax 7.00 | 6.00 6.00a

MS-DOS | OS/2

buglist6.00 buglist6.00a buglist6.00ax buglist7.00

Summary:

SYMPTOMS

Based pointers and variables are introduced in Microsoft C version

6.0. One limitation of based addressing is that a formal parameter

to a function cannot be based on a previous formal parameter to the

same function. For example, the compiler will generate an error for

the following function definition, which has two formal parameters

with the second parameter based on the first:

void func1( _segment myseg, int _based(myseg) *bptr )

{

}

The first parameter (myseg) is of type segment, while the second is

a based pointer to an integer (bptr) that is based on the myseg. If

these same variable declarations are not part of a formal parameter

list, they will compile without problem, but the above function

will generate the following compiler error for the based variable:

error C2065: 'myseg' : undefined

STATUS

Microsoft has confirmed this to be a problem in C versions 6.0,

6.0a, 6.0ax, and C/C++ version 7.0, and QuickC versions 2.5 and 2.51

(buglist2.50 and buglist2.51). We are researching this problem and

will post new information here as it becomes available.

Additional reference words: 6.00 6.00a 6.00ax s_quickc 2.50