diff --git a/contrib/hstore_plperl/hstore_plperl.c b/contrib/hstore_plperl/hstore_plperl.c
index dcc74b12e835a6edb4db2a3aa730403a065d8c04..fbbb4c8e762ab494337f325f371b890e7458d243 100644
--- a/contrib/hstore_plperl/hstore_plperl.c
+++ b/contrib/hstore_plperl/hstore_plperl.c
@@ -9,7 +9,6 @@ PG_MODULE_MAGIC;
 
 
 PG_FUNCTION_INFO_V1(hstore_to_plperl);
-Datum		hstore_to_plperl(PG_FUNCTION_ARGS);
 
 Datum
 hstore_to_plperl(PG_FUNCTION_ARGS)
@@ -39,7 +38,6 @@ hstore_to_plperl(PG_FUNCTION_ARGS)
 
 
 PG_FUNCTION_INFO_V1(plperl_to_hstore);
-Datum		plperl_to_hstore(PG_FUNCTION_ARGS);
 
 Datum
 plperl_to_hstore(PG_FUNCTION_ARGS)
diff --git a/contrib/hstore_plpython/hstore_plpython.c b/contrib/hstore_plpython/hstore_plpython.c
index 94404a506177c4dcf7ded264c79d4d3bb06846ac..a3316dd9eb1a5f3de40089b8ef0abe8b5e579840 100644
--- a/contrib/hstore_plpython/hstore_plpython.c
+++ b/contrib/hstore_plpython/hstore_plpython.c
@@ -8,7 +8,6 @@ PG_MODULE_MAGIC;
 
 
 PG_FUNCTION_INFO_V1(hstore_to_plpython);
-Datum		hstore_to_plpython(PG_FUNCTION_ARGS);
 
 Datum
 hstore_to_plpython(PG_FUNCTION_ARGS)
@@ -45,7 +44,6 @@ hstore_to_plpython(PG_FUNCTION_ARGS)
 
 
 PG_FUNCTION_INFO_V1(plpython_to_hstore);
-Datum		plpython_to_hstore(PG_FUNCTION_ARGS);
 
 Datum
 plpython_to_hstore(PG_FUNCTION_ARGS)
diff --git a/contrib/ltree_plpython/ltree_plpython.c b/contrib/ltree_plpython/ltree_plpython.c
index af166a720f08d625cd94ee916258b4523e14d763..26b7b3c275d8875d9c2092bfc43f5e62510df76d 100644
--- a/contrib/ltree_plpython/ltree_plpython.c
+++ b/contrib/ltree_plpython/ltree_plpython.c
@@ -7,7 +7,6 @@ PG_MODULE_MAGIC;
 
 
 PG_FUNCTION_INFO_V1(ltree_to_plpython);
-Datum		ltree_to_plpython(PG_FUNCTION_ARGS);
 
 Datum
 ltree_to_plpython(PG_FUNCTION_ARGS)
diff --git a/contrib/pg_audit/pg_audit.c b/contrib/pg_audit/pg_audit.c
index a4b05a6df11709fce41b1156705c22c6e138ec17..a664d0804bc6020a04fa71918e6d85977f325d17 100644
--- a/contrib/pg_audit/pg_audit.c
+++ b/contrib/pg_audit/pg_audit.c
@@ -42,10 +42,6 @@ PG_MODULE_MAGIC;
 
 void		_PG_init(void);
 
-/* Prototypes for functions used with event triggers */
-Datum		pg_audit_ddl_command_end(PG_FUNCTION_ARGS);
-Datum		pg_audit_sql_drop(PG_FUNCTION_ARGS);
-
 PG_FUNCTION_INFO_V1(pg_audit_ddl_command_end);
 PG_FUNCTION_INFO_V1(pg_audit_sql_drop);
 
diff --git a/doc/src/sgml/event-trigger.sgml b/doc/src/sgml/event-trigger.sgml
index 0cb31a478fada47b36ff56c188f1b618114ad768..b6cbb1bc249dcc72475a5c713d58417346fb58d7 100644
--- a/doc/src/sgml/event-trigger.sgml
+++ b/doc/src/sgml/event-trigger.sgml
@@ -998,8 +998,6 @@ typedef struct EventTriggerData
 
 PG_MODULE_MAGIC;
 
-Datum noddl(PG_FUNCTION_ARGS);
-
 PG_FUNCTION_INFO_V1(noddl);
 
 Datum
diff --git a/doc/src/sgml/gist.sgml b/doc/src/sgml/gist.sgml
index dd5d6f9fea05a485f1260d9c87aa72fb2ea0f27d..2d1a5aa863f20177e366021bf977d1049a8d1b26 100644
--- a/doc/src/sgml/gist.sgml
+++ b/doc/src/sgml/gist.sgml
@@ -327,7 +327,6 @@ LANGUAGE C STRICT;
         And the matching code in the C module could then follow this skeleton:
 
 <programlisting>
-Datum       my_consistent(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(my_consistent);
 
 Datum
@@ -390,7 +389,6 @@ LANGUAGE C STRICT;
         And the matching code in the C module could then follow this skeleton:
 
 <programlisting>
-Datum       my_union(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(my_union);
 
 Datum
@@ -464,7 +462,6 @@ LANGUAGE C STRICT;
         And the matching code in the C module could then follow this skeleton:
 
 <programlisting>
-Datum       my_compress(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(my_compress);
 
 Datum
@@ -525,7 +522,6 @@ LANGUAGE C STRICT;
         And the matching code in the C module could then follow this skeleton:
 
 <programlisting>
-Datum       my_decompress(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(my_decompress);
 
 Datum
@@ -565,7 +561,6 @@ LANGUAGE C STRICT;  -- in some cases penalty functions need not be strict
         And the matching code in the C module could then follow this skeleton:
 
 <programlisting>
-Datum       my_penalty(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(my_penalty);
 
 Datum
@@ -614,7 +609,6 @@ LANGUAGE C STRICT;
         And the matching code in the C module could then follow this skeleton:
 
 <programlisting>
-Datum       my_picksplit(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(my_picksplit);
 
 Datum
@@ -721,7 +715,6 @@ LANGUAGE C STRICT;
         And the matching code in the C module could then follow this skeleton:
 
 <programlisting>
-Datum       my_same(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(my_same);
 
 Datum
@@ -772,7 +765,6 @@ LANGUAGE C STRICT;
         And the matching code in the C module could then follow this skeleton:
 
 <programlisting>
-Datum       my_distance(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(my_distance);
 
 Datum
@@ -859,7 +851,6 @@ LANGUAGE C STRICT;
         The matching code in the C module could then follow this skeleton:
 
 <programlisting>
-Datum       my_fetch(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(my_fetch);
 
 Datum
diff --git a/doc/src/sgml/trigger.sgml b/doc/src/sgml/trigger.sgml
index bd0d71e0d925f69fa79412bfead017bf727eb7d7..52f28bca7a683f86740fb86b0ad7a3e5c7819ef3 100644
--- a/doc/src/sgml/trigger.sgml
+++ b/doc/src/sgml/trigger.sgml
@@ -709,11 +709,7 @@ CREATE TABLE ttest (
 #include "commands/trigger.h"   /* ... triggers ... */
 #include "utils/rel.h"          /* ... and relations */
 
-#ifdef PG_MODULE_MAGIC
 PG_MODULE_MAGIC;
-#endif
-
-extern Datum trigf(PG_FUNCTION_ARGS);
 
 PG_FUNCTION_INFO_V1(trigf);
 
diff --git a/src/backend/snowball/dict_snowball.c b/src/backend/snowball/dict_snowball.c
index bc31839bdd94155456938c16424c75b7f0016938..63b471ea51ef23faba84fa419d1c255d10bea479 100644
--- a/src/backend/snowball/dict_snowball.c
+++ b/src/backend/snowball/dict_snowball.c
@@ -61,10 +61,8 @@
 PG_MODULE_MAGIC;
 
 PG_FUNCTION_INFO_V1(dsnowball_init);
-Datum		dsnowball_init(PG_FUNCTION_ARGS);
 
 PG_FUNCTION_INFO_V1(dsnowball_lexize);
-Datum		dsnowball_lexize(PG_FUNCTION_ARGS);
 
 /* List of supported modules */
 typedef struct stemmer_module
diff --git a/src/backend/utils/mb/conversion_procs/ascii_and_mic/ascii_and_mic.c b/src/backend/utils/mb/conversion_procs/ascii_and_mic/ascii_and_mic.c
index 506cf3a6d047bcd96a43ec068c0ae8deb3582a18..1d77103edf857ec3219c0b7890f3976263eaaad1 100644
--- a/src/backend/utils/mb/conversion_procs/ascii_and_mic/ascii_and_mic.c
+++ b/src/backend/utils/mb/conversion_procs/ascii_and_mic/ascii_and_mic.c
@@ -20,9 +20,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(ascii_to_mic);
 PG_FUNCTION_INFO_V1(mic_to_ascii);
 
-extern Datum ascii_to_mic(PG_FUNCTION_ARGS);
-extern Datum mic_to_ascii(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c b/src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c
index cb7244085db4b51f4075f38d297685071443e604..5d1c59b842909a643727500bc2355e66e73eda38 100644
--- a/src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c
+++ b/src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c
@@ -40,27 +40,6 @@ PG_FUNCTION_INFO_V1(win1251_to_iso);
 PG_FUNCTION_INFO_V1(iso_to_win866);
 PG_FUNCTION_INFO_V1(win866_to_iso);
 
-extern Datum koi8r_to_mic(PG_FUNCTION_ARGS);
-extern Datum mic_to_koi8r(PG_FUNCTION_ARGS);
-extern Datum iso_to_mic(PG_FUNCTION_ARGS);
-extern Datum mic_to_iso(PG_FUNCTION_ARGS);
-extern Datum win1251_to_mic(PG_FUNCTION_ARGS);
-extern Datum mic_to_win1251(PG_FUNCTION_ARGS);
-extern Datum win866_to_mic(PG_FUNCTION_ARGS);
-extern Datum mic_to_win866(PG_FUNCTION_ARGS);
-extern Datum koi8r_to_win1251(PG_FUNCTION_ARGS);
-extern Datum win1251_to_koi8r(PG_FUNCTION_ARGS);
-extern Datum koi8r_to_win866(PG_FUNCTION_ARGS);
-extern Datum win866_to_koi8r(PG_FUNCTION_ARGS);
-extern Datum win866_to_win1251(PG_FUNCTION_ARGS);
-extern Datum win1251_to_win866(PG_FUNCTION_ARGS);
-extern Datum iso_to_koi8r(PG_FUNCTION_ARGS);
-extern Datum koi8r_to_iso(PG_FUNCTION_ARGS);
-extern Datum iso_to_win1251(PG_FUNCTION_ARGS);
-extern Datum win1251_to_iso(PG_FUNCTION_ARGS);
-extern Datum iso_to_win866(PG_FUNCTION_ARGS);
-extern Datum win866_to_iso(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/euc2004_sjis2004/euc2004_sjis2004.c b/src/backend/utils/mb/conversion_procs/euc2004_sjis2004/euc2004_sjis2004.c
index 1702ad8aeb8a38fb05659fa3e78082c49580f9d4..398ceb1ab07506a360add2474fb7d17ba9fac121 100644
--- a/src/backend/utils/mb/conversion_procs/euc2004_sjis2004/euc2004_sjis2004.c
+++ b/src/backend/utils/mb/conversion_procs/euc2004_sjis2004/euc2004_sjis2004.c
@@ -19,9 +19,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(euc_jis_2004_to_shift_jis_2004);
 PG_FUNCTION_INFO_V1(shift_jis_2004_to_euc_jis_2004);
 
-extern Datum euc_jis_2004_to_shift_jis_2004(PG_FUNCTION_ARGS);
-extern Datum shift_jis_2004_to_euc_jis_2004(PG_FUNCTION_ARGS);
-
 static void euc_jis_20042shift_jis_2004(const unsigned char *euc, unsigned char *p, int len);
 static void shift_jis_20042euc_jis_2004(const unsigned char *sjis, unsigned char *p, int len);
 
diff --git a/src/backend/utils/mb/conversion_procs/euc_cn_and_mic/euc_cn_and_mic.c b/src/backend/utils/mb/conversion_procs/euc_cn_and_mic/euc_cn_and_mic.c
index 3f2e817e5f350e01d5e63ff35222186639e29588..534fd69966849b0b496a110f05dc6ff79f21b59a 100644
--- a/src/backend/utils/mb/conversion_procs/euc_cn_and_mic/euc_cn_and_mic.c
+++ b/src/backend/utils/mb/conversion_procs/euc_cn_and_mic/euc_cn_and_mic.c
@@ -20,9 +20,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(euc_cn_to_mic);
 PG_FUNCTION_INFO_V1(mic_to_euc_cn);
 
-extern Datum euc_cn_to_mic(PG_FUNCTION_ARGS);
-extern Datum mic_to_euc_cn(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/euc_jp_and_sjis.c b/src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/euc_jp_and_sjis.c
index 3fe7e7933bf52c89f03326863c07a7cc1fb59cb2..c56a91951b9afa03db06f1f8ef15f2905c77036c 100644
--- a/src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/euc_jp_and_sjis.c
+++ b/src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/euc_jp_and_sjis.c
@@ -36,13 +36,6 @@ PG_FUNCTION_INFO_V1(mic_to_euc_jp);
 PG_FUNCTION_INFO_V1(sjis_to_mic);
 PG_FUNCTION_INFO_V1(mic_to_sjis);
 
-extern Datum euc_jp_to_sjis(PG_FUNCTION_ARGS);
-extern Datum sjis_to_euc_jp(PG_FUNCTION_ARGS);
-extern Datum euc_jp_to_mic(PG_FUNCTION_ARGS);
-extern Datum mic_to_euc_jp(PG_FUNCTION_ARGS);
-extern Datum sjis_to_mic(PG_FUNCTION_ARGS);
-extern Datum mic_to_sjis(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/euc_kr_and_mic/euc_kr_and_mic.c b/src/backend/utils/mb/conversion_procs/euc_kr_and_mic/euc_kr_and_mic.c
index 3ea16e6ee71a65865529157898143572f08c7523..db4afd94c83bc4e2ac76c79ffcbef756461d3c3d 100644
--- a/src/backend/utils/mb/conversion_procs/euc_kr_and_mic/euc_kr_and_mic.c
+++ b/src/backend/utils/mb/conversion_procs/euc_kr_and_mic/euc_kr_and_mic.c
@@ -20,9 +20,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(euc_kr_to_mic);
 PG_FUNCTION_INFO_V1(mic_to_euc_kr);
 
-extern Datum euc_kr_to_mic(PG_FUNCTION_ARGS);
-extern Datum mic_to_euc_kr(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c b/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c
index 2afb3b9b604de30e16aca6ba4356723dfbd42d84..795d51cbeeca58926e9c2aa542cfb578f8514158 100644
--- a/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c
+++ b/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c
@@ -26,13 +26,6 @@ PG_FUNCTION_INFO_V1(mic_to_euc_tw);
 PG_FUNCTION_INFO_V1(big5_to_mic);
 PG_FUNCTION_INFO_V1(mic_to_big5);
 
-extern Datum euc_tw_to_big5(PG_FUNCTION_ARGS);
-extern Datum big5_to_euc_tw(PG_FUNCTION_ARGS);
-extern Datum euc_tw_to_mic(PG_FUNCTION_ARGS);
-extern Datum mic_to_euc_tw(PG_FUNCTION_ARGS);
-extern Datum big5_to_mic(PG_FUNCTION_ARGS);
-extern Datum mic_to_big5(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c b/src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c
index 58d75be35e8fbaaee15d906e6caf59aa3af73c40..8f831ba1b3021b074d0b8178a1258c1deb2157f2 100644
--- a/src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c
+++ b/src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c
@@ -26,13 +26,6 @@ PG_FUNCTION_INFO_V1(mic_to_win1250);
 PG_FUNCTION_INFO_V1(latin2_to_win1250);
 PG_FUNCTION_INFO_V1(win1250_to_latin2);
 
-extern Datum latin2_to_mic(PG_FUNCTION_ARGS);
-extern Datum mic_to_latin2(PG_FUNCTION_ARGS);
-extern Datum win1250_to_mic(PG_FUNCTION_ARGS);
-extern Datum mic_to_win1250(PG_FUNCTION_ARGS);
-extern Datum latin2_to_win1250(PG_FUNCTION_ARGS);
-extern Datum win1250_to_latin2(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/latin_and_mic/latin_and_mic.c b/src/backend/utils/mb/conversion_procs/latin_and_mic/latin_and_mic.c
index 35ded6b1bbbeb6fa0744e1f4fbcf39a6ff599210..b727691994573b2f9d23d9e5bf252a7f9fcd3747 100644
--- a/src/backend/utils/mb/conversion_procs/latin_and_mic/latin_and_mic.c
+++ b/src/backend/utils/mb/conversion_procs/latin_and_mic/latin_and_mic.c
@@ -24,13 +24,6 @@ PG_FUNCTION_INFO_V1(mic_to_latin3);
 PG_FUNCTION_INFO_V1(latin4_to_mic);
 PG_FUNCTION_INFO_V1(mic_to_latin4);
 
-extern Datum latin1_to_mic(PG_FUNCTION_ARGS);
-extern Datum mic_to_latin1(PG_FUNCTION_ARGS);
-extern Datum latin3_to_mic(PG_FUNCTION_ARGS);
-extern Datum mic_to_latin3(PG_FUNCTION_ARGS);
-extern Datum latin4_to_mic(PG_FUNCTION_ARGS);
-extern Datum mic_to_latin4(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_ascii/utf8_and_ascii.c b/src/backend/utils/mb/conversion_procs/utf8_and_ascii/utf8_and_ascii.c
index 96d80477edec85462862a2ea800c46b299344efb..22cb01ab839380ef3b3962908661976e669d5b32 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_ascii/utf8_and_ascii.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_ascii/utf8_and_ascii.c
@@ -20,9 +20,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(ascii_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_ascii);
 
-extern Datum ascii_to_utf8(PG_FUNCTION_ARGS);
-extern Datum utf8_to_ascii(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c b/src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c
index a422a26d0083a6f71409076858ecf9aa08856085..ed2ef1170fd0e167f7649793b940fec8daf322c2 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c
@@ -22,9 +22,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(big5_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_big5);
 
-extern Datum big5_to_utf8(PG_FUNCTION_ARGS);
-extern Datum utf8_to_big5(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c b/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c
index f2b01e50a349488e0603ab712d3016b01466965c..65e7616eea494b47464a10b2c678bf94aa8842d3 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c
@@ -27,12 +27,6 @@ PG_FUNCTION_INFO_V1(koi8r_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_koi8u);
 PG_FUNCTION_INFO_V1(koi8u_to_utf8);
 
-extern Datum utf8_to_koi8r(PG_FUNCTION_ARGS);
-extern Datum koi8r_to_utf8(PG_FUNCTION_ARGS);
-
-extern Datum utf8_to_koi8u(PG_FUNCTION_ARGS);
-extern Datum koi8u_to_utf8(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_euc2004/utf8_and_euc2004.c b/src/backend/utils/mb/conversion_procs/utf8_and_euc2004/utf8_and_euc2004.c
index a49eda8838ced89768d59daa2e96cb183f6d0af6..cba8958fa35a8e10b2382618ebf22adec7d2ec1e 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_euc2004/utf8_and_euc2004.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_euc2004/utf8_and_euc2004.c
@@ -24,9 +24,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(euc_jis_2004_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_euc_jis_2004);
 
-extern Datum euc_jis_2004_to_utf8(PG_FUNCTION_ARGS);
-extern Datum utf8_to_euc_jis_2004(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c b/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c
index 83329263179ebd6c574e11f47c502a1ce04c1cb1..fcc8659bc6dab6d6f8f077c6d31a8a74a8383bb2 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c
@@ -22,9 +22,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(euc_cn_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_euc_cn);
 
-extern Datum euc_cn_to_utf8(PG_FUNCTION_ARGS);
-extern Datum utf8_to_euc_cn(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c b/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c
index 6d9aeb4138bc9b9f5a4d7137dba8daee29ac0ac9..0524ec2497a085e44484b466ad9e3e8ac782a8bc 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c
@@ -22,9 +22,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(euc_jp_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_euc_jp);
 
-extern Datum euc_jp_to_utf8(PG_FUNCTION_ARGS);
-extern Datum utf8_to_euc_jp(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c b/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c
index 7edd09b1154c1a0bc5031454b7c3c632cec72e7a..14b2fefa560167332da5bfe63bc330f3494ab644 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c
@@ -22,9 +22,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(euc_kr_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_euc_kr);
 
-extern Datum euc_kr_to_utf8(PG_FUNCTION_ARGS);
-extern Datum utf8_to_euc_kr(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c b/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c
index bc129993ba4ebfebfa628bbad1f55bfbcc9f9286..a956ebb3e9664c5864b2c2f6bfcd1d6355302a1b 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c
@@ -22,9 +22,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(euc_tw_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_euc_tw);
 
-extern Datum euc_tw_to_utf8(PG_FUNCTION_ARGS);
-extern Datum utf8_to_euc_tw(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c b/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c
index 60f0a21925b2e3bc93a907a01a89d9d77002bed9..de2438525ed68ea66f10f745f7dacdb01696a4fd 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c
@@ -22,9 +22,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(gb18030_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_gb18030);
 
-extern Datum gb18030_to_utf8(PG_FUNCTION_ARGS);
-extern Datum utf8_to_gb18030(PG_FUNCTION_ARGS);
-
 /*
  * Convert 4-byte GB18030 characters to and from a linear code space
  *
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.c b/src/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.c
index adc33a68e6b18687e36033703de1a9259a659306..f48fdd3cef0af7e636a15f299764b9effbfc42f8 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.c
@@ -22,9 +22,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(gbk_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_gbk);
 
-extern Datum gbk_to_utf8(PG_FUNCTION_ARGS);
-extern Datum utf8_to_gbk(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c b/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c
index 39e4ce12e5a525ff81087fe094607f01edf65263..7057c6d8894f1583b563d5b7b989adaa3e8f6df8 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c
@@ -46,9 +46,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(iso8859_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_iso8859);
 
-extern Datum iso8859_to_utf8(PG_FUNCTION_ARGS);
-extern Datum utf8_to_iso8859(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c b/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c
index 13a62e11a19a110db39d2a763051fdab99048e30..3635674a84b788612b4b39d13810750142836689 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c
@@ -20,9 +20,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(iso8859_1_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_iso8859_1);
 
-extern Datum iso8859_1_to_utf8(PG_FUNCTION_ARGS);
-extern Datum utf8_to_iso8859_1(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c b/src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c
index 15b49f24b1ead2155adffb1e4c70b65bc7d5f263..2a08f2a39162370d198a5b6e1a5d782fa6fc227c 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c
@@ -22,9 +22,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(johab_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_johab);
 
-extern Datum johab_to_utf8(PG_FUNCTION_ARGS);
-extern Datum utf8_to_johab(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.c b/src/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.c
index 7a3281b640b0d47205c893d78c2aee3e925aa30e..fda2bbdb81b395cf7b74a635f2a465e7070a4c6b 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.c
@@ -22,9 +22,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(sjis_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_sjis);
 
-extern Datum sjis_to_utf8(PG_FUNCTION_ARGS);
-extern Datum utf8_to_sjis(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_sjis2004/utf8_and_sjis2004.c b/src/backend/utils/mb/conversion_procs/utf8_and_sjis2004/utf8_and_sjis2004.c
index 29f4256fe01b0d2181dd637a5f3fb601280cb84a..1727c685aa4e46a6bca0fd98a8d2f85e4682d3ba 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_sjis2004/utf8_and_sjis2004.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_sjis2004/utf8_and_sjis2004.c
@@ -24,9 +24,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(shift_jis_2004_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_shift_jis_2004);
 
-extern Datum shift_jis_2004_to_utf8(PG_FUNCTION_ARGS);
-extern Datum utf8_to_shift_jis_2004(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.c b/src/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.c
index 984980935d2f2efa5b6062d2e6af6c13a32aa8dd..43fe289c9600e470c5dd389caf568464e57c6f9b 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.c
@@ -22,9 +22,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(uhc_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_uhc);
 
-extern Datum uhc_to_utf8(PG_FUNCTION_ARGS);
-extern Datum utf8_to_uhc(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c b/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c
index c2a4ec35f7f7a00c65d8f949f5c199f9ef5a532b..2304ea24bae31e7152b58e8a867c2f71108b654b 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c
@@ -42,9 +42,6 @@ PG_MODULE_MAGIC;
 PG_FUNCTION_INFO_V1(win_to_utf8);
 PG_FUNCTION_INFO_V1(utf8_to_win);
 
-extern Datum win_to_utf8(PG_FUNCTION_ARGS);
-extern Datum utf8_to_win(PG_FUNCTION_ARGS);
-
 /* ----------
  * conv_proc(
  *		INTEGER,	-- source encoding id
diff --git a/src/include/utils/jsonb.h b/src/include/utils/jsonb.h
index 4d614430ce195eac9de70899853719d8eacc2087..026ed55a3c9ee73dffc016460719ddbbb4f848a8 100644
--- a/src/include/utils/jsonb.h
+++ b/src/include/utils/jsonb.h
@@ -401,9 +401,9 @@ extern Datum jsonb_pretty(PG_FUNCTION_ARGS);
 extern Datum jsonb_concat(PG_FUNCTION_ARGS);
 
 /* deletion */
-Datum		jsonb_delete(PG_FUNCTION_ARGS);
-Datum		jsonb_delete_idx(PG_FUNCTION_ARGS);
-Datum		jsonb_delete_path(PG_FUNCTION_ARGS);
+extern Datum jsonb_delete(PG_FUNCTION_ARGS);
+extern Datum jsonb_delete_idx(PG_FUNCTION_ARGS);
+extern Datum jsonb_delete_path(PG_FUNCTION_ARGS);
 
 /* replacement */
 extern Datum jsonb_replace(PG_FUNCTION_ARGS);
diff --git a/src/tutorial/complex.c b/src/tutorial/complex.c
index a263110cd2d36d79dd200f52799c2ab714655e65..ea7051bdebd5fca328b52315af42974527793817 100644
--- a/src/tutorial/complex.c
+++ b/src/tutorial/complex.c
@@ -20,23 +20,6 @@ typedef struct Complex
 	double		y;
 }	Complex;
 
-/*
- * Since we use V1 function calling convention, all these functions have
- * the same signature as far as C is concerned.  We provide these prototypes
- * just to forestall warnings when compiled with gcc -Wmissing-prototypes.
- */
-Datum		complex_in(PG_FUNCTION_ARGS);
-Datum		complex_out(PG_FUNCTION_ARGS);
-Datum		complex_recv(PG_FUNCTION_ARGS);
-Datum		complex_send(PG_FUNCTION_ARGS);
-Datum		complex_add(PG_FUNCTION_ARGS);
-Datum		complex_abs_lt(PG_FUNCTION_ARGS);
-Datum		complex_abs_le(PG_FUNCTION_ARGS);
-Datum		complex_abs_eq(PG_FUNCTION_ARGS);
-Datum		complex_abs_ge(PG_FUNCTION_ARGS);
-Datum		complex_abs_gt(PG_FUNCTION_ARGS);
-Datum		complex_abs_cmp(PG_FUNCTION_ARGS);
-
 
 /*****************************************************************************
  * Input/Output functions
diff --git a/src/tutorial/funcs_new.c b/src/tutorial/funcs_new.c
index abe409b8591e436b454de4f40886476e5cd733f0..f668d281bb1f773009cb53ad41c5b7899160c55b 100644
--- a/src/tutorial/funcs_new.c
+++ b/src/tutorial/funcs_new.c
@@ -18,15 +18,6 @@
 
 PG_MODULE_MAGIC;
 
-/* These prototypes just prevent possible warnings from gcc. */
-
-Datum		add_one(PG_FUNCTION_ARGS);
-Datum		add_one_float8(PG_FUNCTION_ARGS);
-Datum		makepoint(PG_FUNCTION_ARGS);
-Datum		copytext(PG_FUNCTION_ARGS);
-Datum		concat_text(PG_FUNCTION_ARGS);
-Datum		c_overpaid(PG_FUNCTION_ARGS);
-
 
 /* By Value */