annotate src/gripes.h @ 8039:cd90e2842080

Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
author David Bateman <dbateman@free.fr>
date Tue, 19 Aug 2008 14:46:35 -0400
parents 3100283874d7
children 7e0f36dfefbe
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
2
7017
a1dbe9d80eee [project @ 2007-10-12 21:27:11 by jwe]
jwe
parents: 7016
diff changeset
3 Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000, 2003, 2005, 2006,
a1dbe9d80eee [project @ 2007-10-12 21:27:11 by jwe]
jwe
parents: 7016
diff changeset
4 2007 John W. Eaton
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
5
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
6 This file is part of Octave.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
7
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
8 Octave is free software; you can redistribute it and/or modify it
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
9 under the terms of the GNU General Public License as published by the
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6890
diff changeset
10 Free Software Foundation; either version 3 of the License, or (at your
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6890
diff changeset
11 option) any later version.
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
12
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
13 Octave is distributed in the hope that it will be useful, but WITHOUT
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
16 for more details.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
17
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6890
diff changeset
19 along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6890
diff changeset
20 <http://www.gnu.org/licenses/>.
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
21
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
22 */
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
23
383
0b52c68ec81f [project @ 1994-03-09 21:19:44 by jwe]
jwe
parents: 240
diff changeset
24 #if !defined (octave_gripes_h)
0b52c68ec81f [project @ 1994-03-09 21:19:44 by jwe]
jwe
parents: 240
diff changeset
25 #define octave_gripes_h 1
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
26
2374
67a18ae969d4 [project @ 1996-10-12 00:27:01 by jwe]
jwe
parents: 2086
diff changeset
27 #include <string>
67a18ae969d4 [project @ 1996-10-12 00:27:01 by jwe]
jwe
parents: 2086
diff changeset
28
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 4452
diff changeset
29 #include "oct-types.h"
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 4452
diff changeset
30
2086
bfb775fb6fe8 [project @ 1996-04-25 05:55:19 by jwe]
jwe
parents: 2078
diff changeset
31 class octave_value;
620
8e4e7e5f307e [project @ 1994-08-16 04:36:32 by jwe]
jwe
parents: 383
diff changeset
32
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
33 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
34 gripe_not_supported (const char *);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
35
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
36 extern OCTINTERP_API void
6890
b2b7526a5772 [project @ 2007-09-12 20:14:35 by jwe]
jwe
parents: 6109
diff changeset
37 gripe_not_implemented (const char *);
b2b7526a5772 [project @ 2007-09-12 20:14:35 by jwe]
jwe
parents: 6109
diff changeset
38
b2b7526a5772 [project @ 2007-09-12 20:14:35 by jwe]
jwe
parents: 6109
diff changeset
39 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
40 gripe_string_invalid (void);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
41
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
42 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
43 gripe_range_invalid (void);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
44
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
45 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
46 gripe_nonconformant (void);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
47
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
48 extern OCTINTERP_API void
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 4452
diff changeset
49 gripe_nonconformant (octave_idx_type r1, octave_idx_type c1, octave_idx_type r2, octave_idx_type c2);
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
50
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
51 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
52 gripe_empty_arg (const char *name, bool is_error);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
53
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
54 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
55 gripe_square_matrix_required (const char *name);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
56
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
57 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
58 gripe_user_supplied_eval (const char *name);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
59
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
60 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
61 gripe_user_returned_invalid (const char *name);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
62
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
63 extern OCTINTERP_API void
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
64 gripe_invalid_conversion (const std::string& from, const std::string& to);
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
65
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
66 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
67 gripe_invalid_value_specified (const char *name);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
68
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
69 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
70 gripe_2_or_3_dim_plot (void);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
71
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
72 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
73 gripe_unrecognized_float_fmt (void);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
74
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
75 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
76 gripe_unrecognized_data_fmt (const char *warn_for);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
77
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
78 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
79 gripe_data_conversion (const char *from, const char *to);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
80
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
81 extern OCTINTERP_API void
5602
dfa2da0563e5 [project @ 2006-01-31 03:43:40 by jwe]
jwe
parents: 5307
diff changeset
82 gripe_wrong_type_arg (const char *name, const char *s,
dfa2da0563e5 [project @ 2006-01-31 03:43:40 by jwe]
jwe
parents: 5307
diff changeset
83 bool is_error = true);
dfa2da0563e5 [project @ 2006-01-31 03:43:40 by jwe]
jwe
parents: 5307
diff changeset
84
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
85 extern OCTINTERP_API void
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
86 gripe_wrong_type_arg (const char *name, const std::string& s,
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
87 bool is_error = true);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
88
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
89 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
90 gripe_wrong_type_arg (const char *name, const octave_value& tc,
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
91 bool is_error = true);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
92
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
93 extern OCTINTERP_API void
7352
fab9bc33b949 [project @ 2008-01-07 18:54:45 by jwe]
jwe
parents: 7017
diff changeset
94 gripe_wrong_type_arg (const std::string& name, const octave_value& tc,
fab9bc33b949 [project @ 2008-01-07 18:54:45 by jwe]
jwe
parents: 7017
diff changeset
95 bool is_error = true);
fab9bc33b949 [project @ 2008-01-07 18:54:45 by jwe]
jwe
parents: 7017
diff changeset
96
fab9bc33b949 [project @ 2008-01-07 18:54:45 by jwe]
jwe
parents: 7017
diff changeset
97 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
98 gripe_wrong_type_arg_for_unary_op (const octave_value& op);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
99
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
100 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
101 gripe_wrong_type_arg_for_binary_op (const octave_value& op);
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
102
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
103 extern OCTINTERP_API void
5781
faafc2d98b8d [project @ 2006-05-02 19:40:19 by jwe]
jwe
parents: 5602
diff changeset
104 gripe_implicit_conversion (const char *id, const char *from, const char *to);
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
105
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
106 extern OCTINTERP_API void
5781
faafc2d98b8d [project @ 2006-05-02 19:40:19 by jwe]
jwe
parents: 5602
diff changeset
107 gripe_implicit_conversion (const std::string& id, const std::string& from,
faafc2d98b8d [project @ 2006-05-02 19:40:19 by jwe]
jwe
parents: 5602
diff changeset
108 const std::string& to);
4452
f3c21a1d1c62 [project @ 2003-07-09 23:20:18 by jwe]
jwe
parents: 3523
diff changeset
109
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
110 extern OCTINTERP_API void
7997
2b8952e133c9 implement checked conversions between integers
Jaroslav Hajek <highegg@gmail.com>
parents: 7352
diff changeset
111 gripe_truncated_conversion (const char *srctype, const char *desttype);
2b8952e133c9 implement checked conversions between integers
Jaroslav Hajek <highegg@gmail.com>
parents: 7352
diff changeset
112
2b8952e133c9 implement checked conversions between integers
Jaroslav Hajek <highegg@gmail.com>
parents: 7352
diff changeset
113 extern OCTINTERP_API void
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 8011
diff changeset
114 gripe_binop_integer_math_truncated (const char *op, const char *type1, const char *type2);
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 8011
diff changeset
115
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 8011
diff changeset
116 extern OCTINTERP_API void
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 8011
diff changeset
117 gripe_unop_integer_math_truncated (const char *op, const char *type);
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 8011
diff changeset
118
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 8011
diff changeset
119 extern OCTINTERP_API void
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 8011
diff changeset
120 gripe_non_integer_conversion (const char *srctype, const char *desttype);
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 8011
diff changeset
121
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 8011
diff changeset
122 extern OCTINTERP_API void
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 8011
diff changeset
123 gripe_nan_conversion (const char *srctype, const char *desttype);
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 8011
diff changeset
124
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 8011
diff changeset
125 extern OCTINTERP_API void
2799
d77a29e4387f [project @ 1997-03-08 08:35:56 by jwe]
jwe
parents: 2668
diff changeset
126 gripe_divide_by_zero (void);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
127
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5943
diff changeset
128 extern OCTINTERP_API void
5943
c038c2947ee1 [project @ 2006-08-18 21:27:03 by jwe]
jwe
parents: 5781
diff changeset
129 gripe_logical_conversion (void);
c038c2947ee1 [project @ 2006-08-18 21:27:03 by jwe]
jwe
parents: 5781
diff changeset
130
8011
3100283874d7 improve backtrace error messages
John W. Eaton <jwe@octave.org>
parents: 7997
diff changeset
131 extern OCTINTERP_API void
3100283874d7 improve backtrace error messages
John W. Eaton <jwe@octave.org>
parents: 7997
diff changeset
132 gripe_library_execution_error (void);
3100283874d7 improve backtrace error messages
John W. Eaton <jwe@octave.org>
parents: 7997
diff changeset
133
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
134 #endif
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
135
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
136 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
137 ;;; Local Variables: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
138 ;;; mode: C++ ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
139 ;;; End: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
140 */