Possible compiler bug with a queue derived from a file record

I found an unexpected behavior with this code:

AFile                   FILE,DRIVER('TOPSPEED'),PRE(AFI),THREAD
Record                    RECORD
KeyField                    BYTE
NameField                   STRING(20)
                          END
                        END
...
TestWithoutPRE      ROUTINE
  DATA
AQueue QUEUE(AFI:Record)
    END
  CODE  
  AFI:NameField = 'ABC'
  AssertEqual('ABC',AFile.AFI:NameField,'Without pre: file field')
  AssertEqual('',AQueue.NameField,'Without pre: queue field')

Both assertions fail. Looks like the string is assigned to the queue field instead of the file field.

Adding an empty PRE to the queue, fixes the problem.

AQueue  QUEUE(AFI:Record),PRE
        END

I think the compiler is failing to report a Label duplicated, second used warning when compiling, and silently using the second declaration.

I’m attaching a zip file with a test app. I’ll appreciate your comments before reporting it in PTSS.

queuefile.zip (13.6 KB)