Title: | C++ |
Notice: | Read 1.* and use keywords (e.g. SHOW KEY/FULL KIT_CXX_VAX_VMS) |
Moderator: | DECCXX::AMARTIN |
Created: | Fri Nov 06 1987 |
Last Modified: | Thu Jun 05 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 3604 |
Total number of notes: | 18242 |
Here's a bit of code for you which ACCVIO's the 5.5-017 and 015 CXX compilers on AXP, but doesn't if either of FIX1 or FIX2 is defined. Is it meant to work, is it meant to be throwing an error out, but crashes before it can get the error message out or am I missing something. Neil #ifdef FIX1 # define S1NAME s1 # define S2NAME s2 #else # define S1NAME # define S2NAME #endif struct quad { union { struct { unsigned long lo; unsigned long hi; } S1NAME; struct { unsigned short w[4]; } S2NAME; }; }; #ifndef FIX2 static quad qone = {1, 0}; #endif int main( int argc, char *argv[] ) { quad myquad; #ifndef FIX2 myquad = qone; #endif } $ cxx 52994 %SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual address=000000000000 0010, PC=000000000016CAF4, PS=0000001B %TRACE-F-TRACEBACK, symbolic stack dump follows image module routine line rel PC abs PC CXX$COMPILER 0 000000000015CAF4 000000000016CAF4 CXX$COMPILER 0 00000000001A8580 00000000001B8580 CXX$COMPILER 0 00000000001A7150 00000000001B7150 CXX$COMPILER 0 00000000001A9F3C 00000000001B9F3C CXX$COMPILER 0 0000000000192490 00000000001A2490 CXX$COMPILER 0 00000000001A23A8 00000000001B23A8 CXX$COMPILER 0 0000000000150790 0000000000160790 CXX$COMPILER GEM_CP_VMS GEM_CP_MAIN 2509 00000000000015C4 000000000027EFB4 0 FFFFFFFF82B190D8 FFFFFFFF82B190D8 $ cxx 52994/define=fix1 $ cxx 52994/define=fix2
T.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
3504.1 | DECC::FOLTAN | Thu Mar 20 1997 11:47 | 29 | ||
I can reproduced the problem with C++ V5.5-017. The problem is fixed in the development stream for our next major release. Below are the following error diagnostics that were generated. I will track this problem. Lois cxx: Warning: /usr/proj/gem_c/foltan/work/cpp3504.cxx, line 13: declaration does not declare anything struct ------^ cxx: Warning: /usr/proj/gem_c/foltan/work/cpp3504.cxx, line 19: declaration does not declare anything struct ------^ cxx: Error: /usr/proj/gem_c/foltan/work/cpp3504.cxx, line 27: no suitable constr uctor exists to convert from "int" to "union quad::<unnamed>" static quad qone = {1, 0}; ---------------------^ cxx: Error: /usr/proj/gem_c/foltan/work/cpp3504.cxx, line 27: too many initializ er values static quad qone = {1, 0}; ------------------------^ 2 errors detected in the compilation of "/usr/proj/gem_c/foltan/work/cpp3504.cxx ". |