diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1995-02-12 17:55:09 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1995-02-12 17:55:09 +0000 |
commit | c44c67b5ae95c3e4201e0cbed7ebf429bc2d664a (patch) | |
tree | 5d83675cd0e69cbeead93e8359c2e659582fae7f /gdb/testsuite/gdb.base | |
parent | 21af55c92d1da8777dd6b71b686f6672670bf3ba (diff) | |
download | gdb-c44c67b5ae95c3e4201e0cbed7ebf429bc2d664a.zip gdb-c44c67b5ae95c3e4201e0cbed7ebf429bc2d664a.tar.gz gdb-c44c67b5ae95c3e4201e0cbed7ebf429bc2d664a.tar.bz2 |
* gdb.base/langs.exp, gdb.base/langs*: New test.
* gdb.base/Makefile.in: Build it.
* TODO: Remove item about checking that C names don't get C++
demangling applied; this test tests it.
Diffstat (limited to 'gdb/testsuite/gdb.base')
-rw-r--r-- | gdb/testsuite/gdb.base/.Sanitize | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/langs0.c | 24 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/langs1.c | 33 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/langs1.f | 7 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/langs2.c | 15 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/langs2.cxx | 13 |
6 files changed, 98 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/.Sanitize b/gdb/testsuite/gdb.base/.Sanitize index 364d600..b42f6e8 100644 --- a/gdb/testsuite/gdb.base/.Sanitize +++ b/gdb/testsuite/gdb.base/.Sanitize @@ -50,6 +50,12 @@ i486-elf.u i860-elf.u interrupt.c interrupt.exp +langs.exp +langs0.c +langs1.c +langs1.f +langs2.c +langs2.cxx list.exp list0.c list0.h diff --git a/gdb/testsuite/gdb.base/langs0.c b/gdb/testsuite/gdb.base/langs0.c new file mode 100644 index 0000000..2790e2d --- /dev/null +++ b/gdb/testsuite/gdb.base/langs0.c @@ -0,0 +1,24 @@ +/* This file is actually in C, it is not supposed to simulate something + translated from another language or anything like that. */ +int +csub (x) + int x; +{ + return x + 1; +} + +int +langs0__2do () +{ + return fsub_ () + 2; +} + +int +main () +{ + if (langs0__2do () == 5003) + /* Success. */ + return 0; + else + return 1; +} diff --git a/gdb/testsuite/gdb.base/langs1.c b/gdb/testsuite/gdb.base/langs1.c new file mode 100644 index 0000000..7842259 --- /dev/null +++ b/gdb/testsuite/gdb.base/langs1.c @@ -0,0 +1,33 @@ +/* langs1.f -- translated by f2c (version of 5 May 1990 1:12:08). */ + +/* f2c output hacked as follows for GDB testsuite: + 1. Change commented out "#" lines to #line directives. + I don't know why this behavior isn't the default for f2c -g. + 2. Remove include of f2c.h and put in just a typedef for "integer". + Additional notes: + 3. f2c was called as "f2c -g langs1.f". + 4. We don't need to use the fortran libraries. */ + +typedef int integer; + +/* Table of constant values */ + +static integer c__10000 = 10000; + +/* I am not sure whether there is a way to have a fortran program without */ +/* a MAIN, but it does not really harm us to have one. */ +/* Main program */ MAIN__() +{ +} /* MAIN__ */ + +#line 4 "langs1.f" +/* Subroutine */ int fsub_() +{ + extern integer cppsub_(); + +#line 5 "langs1.f" +#line 6 "langs1.f" + return cppsub_(&c__10000); +#line 7 "langs1.f" +} /* fsub_ */ + diff --git a/gdb/testsuite/gdb.base/langs1.f b/gdb/testsuite/gdb.base/langs1.f new file mode 100644 index 0000000..35ce691 --- /dev/null +++ b/gdb/testsuite/gdb.base/langs1.f @@ -0,0 +1,7 @@ +c I am not sure whether there is a way to have a fortran program without +c a MAIN, but it does not really harm us to have one. + end + subroutine fsub + integer*4 cppsub + return (cppsub (10000)) + end diff --git a/gdb/testsuite/gdb.base/langs2.c b/gdb/testsuite/gdb.base/langs2.c new file mode 100644 index 0000000..69f290d --- /dev/null +++ b/gdb/testsuite/gdb.base/langs2.c @@ -0,0 +1,15 @@ +/* This is intended to be a vague simulation of cfront output. */ +#line 1 "langs2.cxx" +extern int csub (); +int +foo__Fi (x) int x; +{ + return csub (x / 2); +} + +extern int cppsub_ (int *); +int +cppsub_ (y) int *y; +{ + return foo__Fi (*y); +} diff --git a/gdb/testsuite/gdb.base/langs2.cxx b/gdb/testsuite/gdb.base/langs2.cxx new file mode 100644 index 0000000..d8ee56c --- /dev/null +++ b/gdb/testsuite/gdb.base/langs2.cxx @@ -0,0 +1,13 @@ +extern "C" int csub (int); +int +foo (int x) +{ + return csub (x / 2); +} + +extern "C" int cppsub_ (int); +int +cppsub_ (int *y) +{ + return foo (*y); +} |