diff --git a/src/frontend/numparam/mystring.c b/src/frontend/numparam/mystring.c index d5f2c5ad0..9fdd4cf97 100644 --- a/src/frontend/numparam/mystring.c +++ b/src/frontend/numparam/mystring.c @@ -4,6 +4,8 @@ * Free software under the terms of the GNU Lesser General Public License */ +#include "ngspice/ngspice.h" + #include #include #include @@ -19,8 +21,6 @@ #include "general.h" -#include "ngspice/fteext.h" /* controlled_exit() */ - /* * fetch a human answer to a y/n question from stdin diff --git a/src/frontend/numparam/spicenum.c b/src/frontend/numparam/spicenum.c index 1e76a7d78..72680726f 100644 --- a/src/frontend/numparam/spicenum.c +++ b/src/frontend/numparam/spicenum.c @@ -26,7 +26,7 @@ Todo: #include "general.h" #include "numparam.h" -#include "ngspice/fteext.h" /* controlled_exit() */ +#include "ngspice/fteext.h" extern bool ft_batchmode; diff --git a/src/frontend/trannoise/1-f-code.c b/src/frontend/trannoise/1-f-code.c index 37fae56f0..04b9148d0 100644 --- a/src/frontend/trannoise/1-f-code.c +++ b/src/frontend/trannoise/1-f-code.c @@ -19,8 +19,6 @@ #include "fftw3.h" #endif -extern void controlled_exit(int status); - void f_alpha(int n_pts, int n_exp, double X[], double Q_d, double alpha) diff --git a/src/include/ngspice/fteext.h b/src/include/ngspice/fteext.h index 2bd3df5b1..a9bd62a2d 100644 --- a/src/include/ngspice/fteext.h +++ b/src/include/ngspice/fteext.h @@ -350,6 +350,5 @@ extern bool ft_intrpt; extern bool ft_setflag; /* error.c */ -extern void controlled_exit(int status); #endif diff --git a/src/include/ngspice/ngspice.h b/src/include/ngspice/ngspice.h index df1152419..ad7d37e8d 100644 --- a/src/include/ngspice/ngspice.h +++ b/src/include/ngspice/ngspice.h @@ -299,6 +299,13 @@ extern void SetAnalyse(char *analyse, int percent); void soa_printf(CKTcircuit *ckt, GENinstance *instance, const char *fmt, ...); +#ifdef __GNUC__ +extern void controlled_exit(int status) __attribute__ ((noreturn)); +#else +extern void controlled_exit(int status); +#endif + + /* macro to ignore unused variables and parameters */ #define NG_IGNORE(x) (void)x #define NG_IGNOREABLE(x) (void)x diff --git a/src/misc/alloc.c b/src/misc/alloc.c index 62c98e411..7f4d5e548 100644 --- a/src/misc/alloc.c +++ b/src/misc/alloc.c @@ -12,11 +12,6 @@ Copyright 1990 Regents of the University of California. All rights reserved. */ #include "ngspice/ngspice.h" -/* We need this because some tests in cmaths and some executables other - than ngspice and ngnutmeg under LINUX don't know about controlled_exit */ -#if defined HAS_WINGUI || defined SHARED_MODULE -extern void controlled_exit(int status); -#endif #ifdef SHARED_MODULE #ifndef HAVE_LIBPTHREAD diff --git a/src/spicelib/devices/bsim3soi_dd/b3soiddld.c b/src/spicelib/devices/bsim3soi_dd/b3soiddld.c index 12a389b99..df71a9716 100644 --- a/src/spicelib/devices/bsim3soi_dd/b3soiddld.c +++ b/src/spicelib/devices/bsim3soi_dd/b3soiddld.c @@ -21,7 +21,6 @@ File: b3soiddld.c 98/5/01 #include "ngspice/devdefs.h" #include "ngspice/suffix.h" -#include "ngspice/fteext.h" /* controlled_exit() */ #define MAX_EXP 5.834617425e14 #define MIN_EXP 1.713908431e-15 diff --git a/src/spicelib/devices/bsim3soi_fd/b3soifdld.c b/src/spicelib/devices/bsim3soi_fd/b3soifdld.c index ce04f8080..4b83236d0 100644 --- a/src/spicelib/devices/bsim3soi_fd/b3soifdld.c +++ b/src/spicelib/devices/bsim3soi_fd/b3soifdld.c @@ -21,7 +21,6 @@ File: b3soifdld.c 98/5/01 #include "ngspice/devdefs.h" #include "ngspice/suffix.h" -#include "ngspice/fteext.h" /* controlled_exit() */ #define MAX_EXP 5.834617425e14 #define MIN_EXP 1.713908431e-15 diff --git a/src/spicelib/devices/cktask.c b/src/spicelib/devices/cktask.c index 4394ce0b1..31788a031 100644 --- a/src/spicelib/devices/cktask.c +++ b/src/spicelib/devices/cktask.c @@ -12,7 +12,7 @@ Author: 1985 Thomas L. Quarles #include "ngspice/sperror.h" #include "dev.h" -#include "ngspice/fteext.h" /* controlled_exit() */ +#include "ngspice/fteext.h" int CKTask(CKTcircuit *ckt, GENinstance *instance, int which, IFvalue *value, IFvalue *selector) diff --git a/src/spicelib/devices/cpl/cplload.c b/src/spicelib/devices/cpl/cplload.c index 0a6687acb..49601cb2d 100644 --- a/src/spicelib/devices/cpl/cplload.c +++ b/src/spicelib/devices/cpl/cplload.c @@ -10,7 +10,6 @@ Author: 1992 Charles Hough #include "ngspice/sperror.h" #include "ngspice/suffix.h" -#include "ngspice/fteext.h" /* controlled_exit() */ VI_list *pool_vi; static double ratio[MAX_CP_TX_LINES]; diff --git a/src/spicelib/devices/cpl/cplsetup.c b/src/spicelib/devices/cpl/cplsetup.c index 5e6921b57..fd4b393d4 100644 --- a/src/spicelib/devices/cpl/cplsetup.c +++ b/src/spicelib/devices/cpl/cplsetup.c @@ -14,7 +14,6 @@ Modified: 2004 Paolo Nenzi - (ng)spice integration #include "ngspice/multi_line.h" -#include "ngspice/fteext.h" /* controlled_exit() */ #define VECTOR_ALLOC(vec, n) { \ diff --git a/src/spicelib/devices/txl/txlload.c b/src/spicelib/devices/txl/txlload.c index 8699a83cb..a5c498c52 100644 --- a/src/spicelib/devices/txl/txlload.c +++ b/src/spicelib/devices/txl/txlload.c @@ -10,7 +10,6 @@ Author: 1992 Charles Hough #include "ngspice/sperror.h" #include "ngspice/suffix.h" -#include "ngspice/fteext.h" /* controlled_exit() */ static double ratio[MAX_CP_TX_LINES]; static int update_cnv_txl(TXLine*, double); diff --git a/src/spicelib/devices/txl/txlsetup.c b/src/spicelib/devices/txl/txlsetup.c index d2462f3da..a2bca7e10 100644 --- a/src/spicelib/devices/txl/txlsetup.c +++ b/src/spicelib/devices/txl/txlsetup.c @@ -12,7 +12,6 @@ Author: 1992 Charles Hough #include "ngspice/sperror.h" #include "ngspice/suffix.h" -#include "ngspice/fteext.h" /* controlled_exit() */ static int ReadTxL(TXLinstance*, CKTcircuit*); /*static int multC();*/ diff --git a/src/spicelib/parser/inpptree.c b/src/spicelib/parser/inpptree.c index 71bc8d385..fee3b157c 100644 --- a/src/spicelib/parser/inpptree.c +++ b/src/spicelib/parser/inpptree.c @@ -11,7 +11,6 @@ Author: 1987 Wayne A. Christopher, U. C. Berkeley CAD Group #include "ngspice/inpptree.h" #include "inpxx.h" -extern void controlled_exit(int status); static INPparseNode *mkcon(double value); static INPparseNode *mkb(int type, INPparseNode * left,