PROBLEM: (QAR 49944) (Patch ID: OSF410-400149) ******** This patch fixes a compiler problem where the DEC C compiler will generate incorrect code for switch statements whose expression is of type short or type char. The problem occurs at all optimization levels. This problem can be identified by running the following test program. % cat a.c main() { short step = 1; do { switch (step^^) { case 1 : printf("step = 1\n"); break; case 2 : printf("step = 2\n"); break; } } while (step <= 2); } # The incorrect program output is: % cc a.c ; a.out step = 1 # The correct program output is: % cc a.c ; a.out step = 1 step = 2 The version of this fixed compiler is "DEC C V5.2-035". PROBLEM: (QAR 51448) (Patch ID: OSF410-400187) ******** This patch fixes a crash in the DEC C compiler that occurs when compiling a structure whose tag is longer than 256 characters. The problem occurs only when compiling with debug symbols (-g). Below is an example of a program that will cause this crash. % cat test.c #define a(x) x##x##x##x##x##x##x##x##x##x##x##x##x##x##x##x struct a(XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX); % cc -g test.c cc: Fatal: A memory access violation (bus error or segmentation fault) has occurred. Please submit a problem report. PROBLEM: (Patch ID: OSF410-400257) ******** Fixes "Assertion failure: Compiler internal error" compiler crash that occurred when compiling xemacs editor. The compiler would crash in certain cases where one expression is an lvalue and the other an rvalue. The workaround was to use "cc -oldc". PROBLEM: (Patch ID: OSF410-400257) ******** Fixes "Invalid expression" compiler error with valid token-pasting macro that occurred when compiling a public domain calc program. PROBLEM: (QAR 51915, 47301) (Patch ID: OSF410-400257) ******** Fixes "Fatal: memory access violation" compiler crash that occurred when the left side of a structure pointer operator (->) was not an lvalue. This case should produce a compilation error and not a compiler crash. PROBLEM: (OSF_QAR 57232/CLD HPAQB11) (Patch ID: OSF410-400473) ******** A compiler code generation problem that caused incorrect code for a left shift operation on a signed int in ANSI (-std/-std1) compilation modes. PROBLEM: (OSF_QAR 57443) (Patch ID: OSF410-400473) ******** A structure-return temporary was not preserved until later used in an enclosing function call. This was originally reported in the comp.unix.osf.osf1 newsgroup. PROBLEM: (DECC 2212) (Patch ID: OSF410-400473) ******** A "GEM ASSERTION, Compiler internal error" problem when compiling a complex conditional expression with -O0. This compiler problem did not occur at other optimization levels.