Mercurial > octave
comparison oct-conf-post-public.in.h @ 31487:2ec625c04947 stable
Mark exceptions with default visibility also where they are used (bug #61704).
For exceptions that are thrown across library borders to work correctly, the
definition of those exceptions needs to be attributed with default visibility
both in the library where they are defined and in the code where they are
caught.
* oct-conf-post-public.in.h: Add new preprocessor macros for visibility
attributes of exception classes.
* liboctave/util/quit.h (execution_exception),
liboctave/util/lo-array-errwarn.h (index_exception): Use new preprocessor macro
to flag exception classes that are thrown across library borders.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Sat, 19 Nov 2022 16:55:11 +0100 |
parents | e7fc6251b698 |
children | d5415300e53b e88a07dec498 |
comparison
equal
deleted
inserted
replaced
31485:8acc0fd58ba2 | 31487:2ec625c04947 |
---|---|
135 #endif | 135 #endif |
136 | 136 |
137 /* API macros for liboctave */ | 137 /* API macros for liboctave */ |
138 #if defined (OCTAVE_DLL) | 138 #if defined (OCTAVE_DLL) |
139 # define OCTAVE_API OCTAVE_EXPORT | 139 # define OCTAVE_API OCTAVE_EXPORT |
140 # define OCTAVE_EXCEPTION_API OCTAVE_EXPORT | |
140 # if defined (_WIN32) || defined (__CYGWIN__) | 141 # if defined (_WIN32) || defined (__CYGWIN__) |
141 # define OCTAVE_TEMPLATE_API | 142 # define OCTAVE_TEMPLATE_API |
142 # if defined(__MINGW32__) | 143 # if defined(__MINGW32__) |
143 # define OCTAVE_EXTERN_TEMPLATE_API OCTAVE_EXPORT | 144 # define OCTAVE_EXTERN_TEMPLATE_API OCTAVE_EXPORT |
144 # define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API | 145 # define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API |
153 # define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API | 154 # define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API |
154 # define OCTAVE_OVERRIDABLE_FUNC_API | 155 # define OCTAVE_OVERRIDABLE_FUNC_API |
155 # endif | 156 # endif |
156 #else | 157 #else |
157 # define OCTAVE_API OCTAVE_IMPORT | 158 # define OCTAVE_API OCTAVE_IMPORT |
159 # if defined (_WIN32) || defined (__CYGWIN__) | |
160 # define OCTAVE_EXCEPTION_API OCTAVE_IMPORT | |
161 # else | |
162 # define OCTAVE_EXCEPTION_API OCTAVE_EXPORT | |
163 # endif | |
158 # define OCTAVE_TEMPLATE_API | 164 # define OCTAVE_TEMPLATE_API |
159 # define OCTAVE_EXTERN_TEMPLATE_API OCTAVE_IMPORT | 165 # define OCTAVE_EXTERN_TEMPLATE_API OCTAVE_IMPORT |
160 # define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API | 166 # define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API |
161 # define OCTAVE_OVERRIDABLE_FUNC_API | 167 # define OCTAVE_OVERRIDABLE_FUNC_API |
162 #endif | 168 #endif |
163 | 169 |
164 /* API macros for liboctinterp */ | 170 /* API macros for liboctinterp */ |
165 #if defined (OCTINTERP_DLL) | 171 #if defined (OCTINTERP_DLL) |
166 # define OCTINTERP_API OCTAVE_EXPORT | 172 # define OCTINTERP_API OCTAVE_EXPORT |
173 # define OCTINTERP_EXCEPTION_API OCTAVE_EXPORT | |
167 # if defined (_WIN32) || defined (__CYGWIN__) | 174 # if defined (_WIN32) || defined (__CYGWIN__) |
168 # define OCTINTERP_TEMPLATE_API | 175 # define OCTINTERP_TEMPLATE_API |
169 # if defined(__MINGW32__) | 176 # if defined(__MINGW32__) |
170 # define OCTINTERP_EXTERN_TEMPLATE_API OCTAVE_EXPORT | 177 # define OCTINTERP_EXTERN_TEMPLATE_API OCTAVE_EXPORT |
171 # define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API | 178 # define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API |
180 # define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API | 187 # define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API |
181 # define OCTINTERP_OVERRIDABLE_FUNC_API | 188 # define OCTINTERP_OVERRIDABLE_FUNC_API |
182 # endif | 189 # endif |
183 #else | 190 #else |
184 # define OCTINTERP_API OCTAVE_IMPORT | 191 # define OCTINTERP_API OCTAVE_IMPORT |
192 # if defined (_WIN32) || defined (__CYGWIN__) | |
193 # define OCTINTERP_EXCEPTION_API OCTAVE_IMPORT | |
194 # else | |
195 # define OCTINTERP_EXCEPTION_API OCTAVE_EXPORT | |
196 # endif | |
185 # define OCTINTERP_TEMPLATE_API | 197 # define OCTINTERP_TEMPLATE_API |
186 # define OCTINTERP_EXTERN_TEMPLATE_API OCTAVE_IMPORT | 198 # define OCTINTERP_EXTERN_TEMPLATE_API OCTAVE_IMPORT |
187 # define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API | 199 # define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API |
188 # define OCTINTERP_OVERRIDABLE_FUNC_API | 200 # define OCTINTERP_OVERRIDABLE_FUNC_API |
189 #endif | 201 #endif |
190 | 202 |
191 /* API macros for the Array class in liboctave and liboctinterp */ | 203 /* API macros for the Array class in liboctave and liboctinterp */ |
192 #if (defined (OCTAVE_DLL) || defined (OCTINTERP_DLL)) | 204 #if (defined (OCTAVE_DLL) || defined (OCTINTERP_DLL)) |
193 # define OCTARRAY_API OCTAVE_EXPORT | 205 # define OCTARRAY_API OCTAVE_EXPORT |
206 # define OCTARRAY_EXCEPTION_API OCTAVE_EXPORT | |
194 # if defined (_WIN32) || defined (__CYGWIN__) | 207 # if defined (_WIN32) || defined (__CYGWIN__) |
195 # define OCTARRAY_TEMPLATE_API | 208 # define OCTARRAY_TEMPLATE_API |
196 # if defined(__MINGW32__) | 209 # if defined(__MINGW32__) |
197 # define OCTARRAY_EXTERN_TEMPLATE_API OCTAVE_EXPORT | 210 # define OCTARRAY_EXTERN_TEMPLATE_API OCTAVE_EXPORT |
198 # define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API | 211 # define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API |
207 # define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API | 220 # define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API |
208 # define OCTARRAY_OVERRIDABLE_FUNC_API | 221 # define OCTARRAY_OVERRIDABLE_FUNC_API |
209 # endif | 222 # endif |
210 #else | 223 #else |
211 # define OCTARRAY_API OCTAVE_IMPORT | 224 # define OCTARRAY_API OCTAVE_IMPORT |
225 # if defined (_WIN32) || defined (__CYGWIN__) | |
226 # define OCTARRAY_EXCEPTION_API OCTAVE_IMPORT | |
227 # else | |
228 # define OCTARRAY_EXCEPTION_API OCTAVE_EXPORT | |
229 # endif | |
212 # define OCTARRAY_TEMPLATE_API | 230 # define OCTARRAY_TEMPLATE_API |
213 # define OCTARRAY_EXTERN_TEMPLATE_API OCTAVE_IMPORT | 231 # define OCTARRAY_EXTERN_TEMPLATE_API OCTAVE_IMPORT |
214 # define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API | 232 # define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API |
215 # define OCTARRAY_OVERRIDABLE_FUNC_API | 233 # define OCTARRAY_OVERRIDABLE_FUNC_API |
216 #endif | 234 #endif |
217 | 235 |
218 /* API macros for libinterp/graphics */ | 236 /* API macros for libinterp/graphics */ |
219 #if defined (OCTGRAPHICS_DLL) | 237 #if defined (OCTGRAPHICS_DLL) |
220 # define OCTGRAPHICS_API OCTAVE_EXPORT | 238 # define OCTGRAPHICS_API OCTAVE_EXPORT |
239 # define OCTGRAPHICS_EXCEPTION_API OCTAVE_EXPORT | |
221 # if defined (_WIN32) || defined (__CYGWIN__) | 240 # if defined (_WIN32) || defined (__CYGWIN__) |
222 # define OCTGRAPHICS_TEMPLATE_API | 241 # define OCTGRAPHICS_TEMPLATE_API |
223 # if defined(__MINGW32__) | 242 # if defined(__MINGW32__) |
224 # define OCTGRAPHICS_EXTERN_TEMPLATE_API OCTAVE_EXPORT | 243 # define OCTGRAPHICS_EXTERN_TEMPLATE_API OCTAVE_EXPORT |
225 # define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API | 244 # define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API |
234 # define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API | 253 # define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API |
235 # define OCTGRAPHICS_OVERRIDABLE_FUNC_API | 254 # define OCTGRAPHICS_OVERRIDABLE_FUNC_API |
236 # endif | 255 # endif |
237 #else | 256 #else |
238 # define OCTGRAPHICS_API OCTAVE_IMPORT | 257 # define OCTGRAPHICS_API OCTAVE_IMPORT |
258 # if defined (_WIN32) || defined (__CYGWIN__) | |
259 # define OCTGRAPHICS_EXCEPTION_API OCTAVE_IMPORT | |
260 # else | |
261 # define OCTGRAPHICS_EXCEPTION_API OCTAVE_EXPORT | |
262 # endif | |
239 # define OCTGRAPHICS_TEMPLATE_API | 263 # define OCTGRAPHICS_TEMPLATE_API |
240 # define OCTGRAPHICS_EXTERN_TEMPLATE_API OCTAVE_IMPORT | 264 # define OCTGRAPHICS_EXTERN_TEMPLATE_API OCTAVE_IMPORT |
241 # define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API | 265 # define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API |
242 # define OCTGRAPHICS_OVERRIDABLE_FUNC_API | 266 # define OCTGRAPHICS_OVERRIDABLE_FUNC_API |
243 #endif | 267 #endif |
244 | 268 |
245 /* API macros for libgui */ | 269 /* API macros for libgui */ |
246 #if defined (OCTGUI_DLL) | 270 #if defined (OCTGUI_DLL) |
247 # define OCTGUI_API OCTAVE_EXPORT | 271 # define OCTGUI_API OCTAVE_EXPORT |
272 # define OCTGUI_EXCEPTION_API OCTAVE_EXPORT | |
248 # if defined (_WIN32) || defined (__CYGWIN__) | 273 # if defined (_WIN32) || defined (__CYGWIN__) |
249 # define OCTGUI_TEMPLATE_API | 274 # define OCTGUI_TEMPLATE_API |
250 # if defined(__MINGW32__) | 275 # if defined(__MINGW32__) |
251 # define OCTGUI_EXTERN_TEMPLATE_API OCTAVE_EXPORT | 276 # define OCTGUI_EXTERN_TEMPLATE_API OCTAVE_EXPORT |
252 # define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API | 277 # define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API |
261 # define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API | 286 # define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API |
262 # define OCTGUI_OVERRIDABLE_FUNC_API | 287 # define OCTGUI_OVERRIDABLE_FUNC_API |
263 # endif | 288 # endif |
264 #else | 289 #else |
265 # define OCTGUI_API OCTAVE_IMPORT | 290 # define OCTGUI_API OCTAVE_IMPORT |
291 # if defined (_WIN32) || defined (__CYGWIN__) | |
292 # define OCTGUI_EXCEPTION_API OCTAVE_IMPORT | |
293 # else | |
294 # define OCTGUI_EXCEPTION_API OCTAVE_EXPORT | |
295 # endif | |
266 # define OCTGUI_TEMPLATE_API | 296 # define OCTGUI_TEMPLATE_API |
267 # define OCTGUI_EXTERN_TEMPLATE_API OCTAVE_IMPORT | 297 # define OCTGUI_EXTERN_TEMPLATE_API OCTAVE_IMPORT |
268 # define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API | 298 # define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API |
269 # define OCTGUI_OVERRIDABLE_FUNC_API | 299 # define OCTGUI_OVERRIDABLE_FUNC_API |
270 #endif | 300 #endif |