File: pg18

package info (click to toggle)
postgresql-pllua 1%3A2.0.12-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,260 kB
  • sloc: ansic: 14,420; sql: 2,193; makefile: 170; sh: 59; javascript: 38
file content (68 lines) | stat: -rw-r--r-- 3,578 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Support PG18's pg_noreturn

PG18 renames pg_attribute_noreturn() to pg_noreturn. To support both, mark
definitions with both, and #define the other one away.

--- a/src/pllua.h
+++ b/src/pllua.h
@@ -54,10 +54,16 @@
 #define FALLTHROUGH /* FALLTHROUGH */
 #endif
 
-LUA_API int   (lua_error) (lua_State *L) pg_attribute_noreturn();
-LUALIB_API int (luaL_argerror) (lua_State *L, int arg, const char *extramsg) pg_attribute_noreturn();
-LUALIB_API int (luaL_typeerror) (lua_State *L, int arg, const char *tname) pg_attribute_noreturn();
-LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...) pg_attribute_noreturn();
+#if PG_VERSION_NUM >= 180000
+#define pg_attribute_noreturn()
+#else
+#define pg_noreturn
+#endif
+
+pg_noreturn LUA_API int   (lua_error) (lua_State *L) pg_attribute_noreturn();
+pg_noreturn LUALIB_API int (luaL_argerror) (lua_State *L, int arg, const char *extramsg) pg_attribute_noreturn();
+pg_noreturn LUALIB_API int (luaL_typeerror) (lua_State *L, int arg, const char *tname) pg_attribute_noreturn();
+pg_noreturn LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...) pg_attribute_noreturn();
 
 /*
  * Define how we want to handle int8 values.
@@ -115,7 +121,7 @@ extern bool pllua_pending_error;
 #define ASSERT_PG_CONTEXT Assert(pllua_context == PLLUA_CONTEXT_PG)
 #define ASSERT_LUA_CONTEXT Assert(pllua_context == PLLUA_CONTEXT_LUA)
 
-void pllua_pending_error_violation(lua_State *L) pg_attribute_noreturn();
+pg_noreturn void pllua_pending_error_violation(lua_State *L) pg_attribute_noreturn();
 
 static inline pllua_context_type
 pllua_setcontext(lua_State *L, pllua_context_type newctx)
@@ -621,7 +627,7 @@ int pllua_open_print(lua_State *L);
 
 int pllua_p_print (lua_State *L);
 void pllua_debug_lua(lua_State *L, const char *msg, ...) pg_attribute_printf(2, 3);
-void pllua_error(lua_State *L, const char *msg, ...) pg_attribute_noreturn();
+pg_noreturn void pllua_error(lua_State *L, const char *msg, ...) pg_attribute_noreturn();
 void pllua_warning(lua_State *L, const char *msg, ...) pg_attribute_printf(2, 3);
 void pllua_error_callback(void *arg);
 int pllua_error_callback_location(lua_State *L);
@@ -638,10 +644,10 @@ int pllua_panic(lua_State *L);
 int pllua_newerror(lua_State *L);
 int pllua_register_error(lua_State *L);
 void pllua_poperror(lua_State *L);
-void pllua_rethrow_from_lua(lua_State *L, int rc) pg_attribute_noreturn();
+pg_noreturn void pllua_rethrow_from_lua(lua_State *L, int rc) pg_attribute_noreturn();
 
 /* These are DLLEXPORT so that transform modules can get at them */
-PGDLLEXPORT void pllua_rethrow_from_pg(lua_State *L, MemoryContext mcxt) pg_attribute_noreturn();
+pg_noreturn PGDLLEXPORT void pllua_rethrow_from_pg(lua_State *L, MemoryContext mcxt) pg_attribute_noreturn();
 PGDLLEXPORT int pllua_pcall_nothrow(lua_State *L, int nargs, int nresults, int msgh);
 PGDLLEXPORT int pllua_cpcall(lua_State *L, lua_CFunction func, void* arg);
 PGDLLEXPORT void pllua_pcall(lua_State *L, int nargs, int nresults, int msgh);
@@ -688,7 +694,7 @@ void **pllua_newrefobject(lua_State *L,
 void **pllua_torefobject(lua_State *L, int nd, char *objtype);
 void *pllua_newobject(lua_State *L, char *objtype, size_t sz, bool uservalue);
 void *pllua_toobject(lua_State *L, int nd, char *objtype);
-void pllua_type_error(lua_State *L, char *expected) pg_attribute_noreturn();
+pg_noreturn void pllua_type_error(lua_State *L, char *expected) pg_attribute_noreturn();
 void **pllua_checkrefobject(lua_State *L, int nd, char *objtype);
 void *pllua_checkobject(lua_State *L, int nd, char *objtype);