
PROBLEM: (84670, 84695, 85014) (PATCH ID: OSF510-132)
********
    o When assembling a .s file containing a data declaration directive
      (such as .byte) that specifies a list of values greater than 74,
      a fatal "yacc stack overflow" condition is raised.
    o A main procedure's prologue description will overwrite that of an
      alternate entry point when they both share the same address, and
      they both specify their own .prologue directive.

    o A .s file that contains .align directives in its text section
      that is assembled at an optimization level greater than O0
      may produce a series of zeros in its text section which, if
      executed, would cause the program to halt.


PROBLEM: (80142, 81330, 81332, 81723,
          81743, 82081, 82082, 82458, 83503,
          83808, 83896, 83897, 83898) (PATCH ID: OSF510-103)
********
    o The -arch and -tune command line switches were essentially being
      ignored.

    o Code generated by the assembler for emulated ldb/ldbu/ldw/ldwu
      instructions produces incorrect results due to a linker optimization.

    o Code generated for uldl and uldq instructions produces incorrect
      results if the data to be loaded is not quadword aligned.  

    o Code generated for loads with offsets larger than 32K is incorrect.

    o Incorrect addresses are generated when symbolic arithmetic is 
      used, and when the address in question extends beyond the intitial 64K 
      boundary of a data section. 

    o A prodecure with no instructions causes the assembler to segfault.

    o A prodecure with no instructions causes line number generation to 
      segfault.

    o Data declared using the .gprel32 directive was not being longword aligned.

    o The relocation count for a program that contains a section that has in
      excess of 65535 reloctions will be incorrect, resulting in a bad link
      and an invalid executable.

    o An entry (PDSC_FLAGS_BASE_REG_IS_FP) was not being set correctly 
      in a short-form stack-frame RPD when a .frame directive specified
      register 15.

    o When two entry points to a procedure (main or alternate) share 
      the same address, the assembler generates four nop profiling 
      instruction sequences for each one, when the -pg switch is
      specified.  This causes post-link tools, like SPIKE, problems.

    o When a main and an alternate entry point share both an address
      and a prologue, the assembler associates the prologue with the
      alternate entry and not the main, resulting in the assembler not
      generating an RPD, since it does not see a prologue for the 
      main entry.

    o The assembler mis-calculates the number of relocations present
      in the .text section if a jmp/jsr instruction was specified
      without a symbol as an operand.  This can result in a linker error.


PROBLEM: (86431, 86432, 86433, 86434) (PATCH ID: OSF510-274)
********
   o The assembler has never generated a section header for zero-sized
     sections, or a symbol table entry for a label symbol that is
     associated with such a section.  This essentially correct
     behavior represents an incompatibility with the old assembler
     and has been changed with this patch.
   o The assembler was not including symbols for numeric constant label
     symbols in the symbol table.  It is now.
   o The assembler can produce incorret scoping for local symbols,
     resulting in incorrect association of symbols with their
     containing procedures.
   o The assembler's association of label symbols to their files of
     origin was incorrect in certain circumstances:
                .file   1 "file1.cxx"
        gcc2_compiled.:
        __gnu_compiled_cplusplus:
                .file   2 "file2.h"
                .file   3 "file3.h"
                .text

      In this example, label1 and label2 are mistakenly associated
      with file3.h due to the assembler's practice of establishing
      file context based on the instruction with which a given label was
      associated, which in this case was the first intruction in the
      .text section.  File context is positional and in this case both
      labels should be associated with file1.


PROBLEM: (89008, 90148, 90298) (PATCH ID: OSF510-412)
********
    This patch, shipped as Version 3.04.34 of the Tru64 UNIX
    Assembler, resolves two assembler problems:

    o This unusual case takes the following combination of factors:
  
      1) A label defined at the head of the .rdata section,
  
      2) Multiple file references (use of the .file and .loc directives)
         such that the initial .rdata label and the entry label of the last
         procedure in the .text section are associated with different files.
  
      The resulting symbol table scoping information is invalid, and causes
      om to seg fault.  Note that this symbol table, although incorrect, does
      not stop the object file from linking and executing properly if -om is
      removed from the mix.

    o The assembler improperly reorders an instruction which restores 
      the stack pointer when assembling with optimization active.  
      The scheduler has specific logic which prevents an addq or an lda
      instruction which restores sp (and is followed by a ret 
      instruction) from being moved.  The problem occurs in a case 
      where a bis instruction is used in order to restore sp. 
      This instruction is being reordered by the assembler and it
      must not be.

    o The assembler is not adding a terminating NULL to the string 
      specified as the argument for a .ident directive when the string 
      is written to the object file.  This causes the "what" command
      to produce incorrect return values.



