Microsoft KB Archive/11762

C Attribute Does Not Work Correctly

PSS ID Number: Q11762 Article last modified on 01- 6-1989

3.30 XENIX buglist3.30

Problem: Page 105 of the “Microsoft FORTRAN User’s Guide” states the following: “If you specify the C attribute on…a named common block in FORTRAN, the name is changed to lowercase and a leading underscore is added.” Actually, the C attribute on a named common has no effect. The only way to access FORTRAN common from a C program is to actually call a FORTRAN routine that returns a pointer to the first element in common. The following is an example: subroutine test common/stmt [C]/j(3) j(1)=3 j(2)=5 j(3)=8 stop end If you do “nm test.0” after compilation, you will see that stmt is neither lowercase nor preceded by an underscore.

Response: Microsoft has confirmed this to be a problem in Version 3.30. We are researching this problem and will post new information as it becomes available. A workaround is to use the “ALIAS” attribute, giving your variable a name preceded by an underscore and in lowercase, as in the following example: SUBROUTINE TEST COMMON /STMT [ alias:’_stmt’ ] / j(3) j(1)=3 j(2)=5 j(3)=8 STOP END