https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119308

--- Comment #5 from Peter Bergner <bergner at gcc dot gnu.org> ---
So some AIX documentation specifies a language tag value (7) for Cobol in the
traceback table:

  https://www.ibm.com/docs/en/aix/7.1?topic=ops-tbtag-pseudo-op

...so this fixes the ICE:

diff --git a/gcc/config/rs6000/rs6000-logue.cc
b/gcc/config/rs6000/rs6000-logue.cc
index 52f44b114b0..5377ad6cee6 100644
--- a/gcc/config/rs6000/rs6000-logue.cc
+++ b/gcc/config/rs6000/rs6000-logue.cc
@@ -5351,6 +5351,8 @@ rs6000_output_function_epilogue (FILE *file)
        i = 1;
       else if (! strcmp (language_string, "GNU Ada"))
        i = 3;
+      else if (! strcmp (language_string, "GCC COBOL"))
+       i = 7;
       else if (! strcmp (language_string, "GNU Modula-2"))
        i = 8;
       else if (lang_GNU_CXX ()

It's interesting the language string is "GCC COBOL" and not "GNU COBOL".  That
was intentional?


That said, we now SEGV during runtime:

bergner@kubota:COBOL$ cat hello.cob 
       IDENTIFICATION DIVISION.
       PROGRAM-ID. hello-world.
       PROCEDURE DIVISION.
           DISPLAY "Hello, world!"
           .

bergner@kubota:COBOL$ gcobol
-R/home/bergner/gcc/install/gcc-fsf-mainline-cobol-debug/lib64
-L/home/bergner/gcc/install/gcc-fsf-mainline-cobol-debug/lib64 hello.cob 

bergner@kubota:COBOL$ ./a.out 
Hello, world!
Segmentation fault (core dumped)

Reply via email to