Replace NO_IMPLICIT_EXTERN_C with SYSTEM_IMPLICIT_EXTERN_C.
authorNathan Sidwell <nathan@acm.org>
Thu, 5 Jul 2018 13:11:44 +0000 (13:11 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Thu, 5 Jul 2018 13:11:44 +0000 (13:11 +0000)
gcc/
Replace NO_IMPLICIT_EXTERN_C with SYSTEM_IMPLICIT_EXTERN_C.
* doc/cpp.texi: Update comment.
* doc/tm.texi: Rebuilt.
* doc/tm.texi.in (NO_IMPLICIT_EXTERN_C): Replace with ...
(SYSTEM_IMPLICIT_EXTERN_C): ... this, opposite sense.
* doc/extend.texi (Backwards Compatibility): Clarify it is system
headers affected by extern "C".
* system.h: Poison NO_IMPLICIT_EXTERN_C.
* config/alpha/alpha.h, config/arm/uclinux-elf.h,
config/bfin/elf.h, config/cris/cris.h, config/darwin.h,
config/dragonfly.h, config/freebsd.h, config/gnu-user.h,
config/i386/cygming.h, config/i386/djgpp.h, config/i386/nto.h,
config/ia64/hpux.h, config/lm32/lm32.h, config/lm32/uclinux-elf.h,
config/lynx.h, config/mips/elf.h, config/mmix/mmix.h,
config/netbsd.h, config/pa/pa-hpux.h, config/powerpcspe/sysv4.h,
config/riscv/elf.h, config/rs6000/sysv4.h, config/rtems.h,
config/s390/tpf.h, config/sh/newlib.h, config/sol2.h,
config/sparc/openbsd64.h, config/sparc/sp-elf.h,
config/sparc/sp64-elf.h, config/spu/spu.h,
config/stormy16/stormy16.h, config/v850/v850.h,
config/visium/visium.h, config/vx-common.h, config/xtensa/elf.h: Don't
define NO_IMPLICIT_EXTERN_C.
* config/rs6000/aix.h: Set SYSTEM_IMPLICIT_EXTERN_C.

gcc/c-family/
* c-lex.c (fe_file_change): Check SYSTEM_IMPLICIT_EXTERN_C not
NO_IMPLICIT_EXTERN_C.

gcc/cp/
* cp/decl.c (decls_match): Check SYSTEM_IMPLICIT_EXTERN_C not
NO_IMPLICIT_EXTERN_C.
* cp/parser.c (cp_parser_parameter_declaration_clause): Likewise.

From-SVN: r262437

47 files changed:
gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-lex.c
gcc/config/alpha/alpha.h
gcc/config/arm/uclinux-elf.h
gcc/config/bfin/elf.h
gcc/config/cris/cris.h
gcc/config/darwin.h
gcc/config/dragonfly.h
gcc/config/freebsd.h
gcc/config/gnu-user.h
gcc/config/i386/cygming.h
gcc/config/i386/djgpp.h
gcc/config/i386/nto.h
gcc/config/ia64/hpux.h
gcc/config/lm32/lm32.h
gcc/config/lm32/uclinux-elf.h
gcc/config/lynx.h
gcc/config/mips/elf.h
gcc/config/mmix/mmix.h
gcc/config/netbsd.h
gcc/config/pa/pa-hpux.h
gcc/config/powerpcspe/sysv4.h
gcc/config/riscv/elf.h
gcc/config/rs6000/aix.h
gcc/config/rs6000/sysv4.h
gcc/config/rtems.h
gcc/config/s390/tpf.h
gcc/config/sh/newlib.h
gcc/config/sol2.h
gcc/config/sparc/openbsd64.h
gcc/config/sparc/sp-elf.h
gcc/config/sparc/sp64-elf.h
gcc/config/spu/spu.h
gcc/config/stormy16/stormy16.h
gcc/config/v850/v850.h
gcc/config/visium/visium.h
gcc/config/vx-common.h
gcc/config/xtensa/elf.h
gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/cp/parser.c
gcc/doc/cpp.texi
gcc/doc/extend.texi
gcc/doc/tm.texi
gcc/doc/tm.texi.in
gcc/system.h

index 3f6d410bcad5005c888d3ca3b182ad8b9b25189a..87cfd18bb268445b2ae3d641dcf605c715054363 100644 (file)
@@ -1,3 +1,29 @@
+2018-07-05  Nathan Sidwell  <nathan@acm.org>
+
+       Replace NO_IMPLICIT_EXTERN_C with SYSTEM_IMPLICIT_EXTERN_C.
+       * doc/cpp.texi: Update comment.
+       * doc/tm.texi: Rebuilt.
+       * doc/tm.texi.in (NO_IMPLICIT_EXTERN_C): Replace with ...
+       (SYSTEM_IMPLICIT_EXTERN_C): ... this, opposite sense.
+       * doc/extend.texi (Backwards Compatibility): Clarify it is system
+       headers affected by extern "C".
+       * system.h: Poison NO_IMPLICIT_EXTERN_C.
+       * config/alpha/alpha.h, config/arm/uclinux-elf.h,
+       config/bfin/elf.h, config/cris/cris.h, config/darwin.h,
+       config/dragonfly.h, config/freebsd.h, config/gnu-user.h,
+       config/i386/cygming.h, config/i386/djgpp.h, config/i386/nto.h,
+       config/ia64/hpux.h, config/lm32/lm32.h, config/lm32/uclinux-elf.h,
+       config/lynx.h, config/mips/elf.h, config/mmix/mmix.h,
+       config/netbsd.h, config/pa/pa-hpux.h, config/powerpcspe/sysv4.h,
+       config/riscv/elf.h, config/rs6000/sysv4.h, config/rtems.h,
+       config/s390/tpf.h, config/sh/newlib.h, config/sol2.h,
+       config/sparc/openbsd64.h, config/sparc/sp-elf.h,
+       config/sparc/sp64-elf.h, config/spu/spu.h,
+       config/stormy16/stormy16.h, config/v850/v850.h,
+       config/visium/visium.h, config/vx-common.h, config/xtensa/elf.h: Don't
+       define NO_IMPLICIT_EXTERN_C.
+       * config/rs6000/aix.h: Set SYSTEM_IMPLICIT_EXTERN_C.
+
 2018-07-05  Tamar Christina  <tamar.christina@arm.com>
 
        PR target/84711
 
        * tree-cfgcleanup.c (tree_forwarder_block_p): Do not return false at
        -O0 if the locus represent UNKNOWN_LOCATION but have different values.
-        
+
 2018-06-19  Aaron Sawdey  <acsawdey@linux.ibm.com>
 
        * config/rs6000/rs6000-string.c (select_block_compare_mode): Check
index 9596eec56bc4467a853b77f37acafa28ae2c8400..24eaf6ad6328ecd11bb42894770ee30e13b77781 100644 (file)
@@ -1,3 +1,8 @@
+2018-07-05  Nathan Sidwell  <nathan@acm.org>
+
+       * c-lex.c (fe_file_change): Check SYSTEM_IMPLICIT_EXTERN_C not
+       NO_IMPLICIT_EXTERN_C.
+
 2018-06-28  Martin Liska  <mliska@suse.cz>
 
        * cppspec.c: Include opt-suggestions.h.
index 3cd24ac40dc81e284877e0c0b27a0d06be261626..074c2d2b86e34ae29e6de7abd826971439c50639 100644 (file)
@@ -206,7 +206,7 @@ fe_file_change (const line_map_ordinary *new_map)
 
          input_location = new_map->start_location;
          (*debug_hooks->start_source_file) (line, LINEMAP_FILE (new_map));
-#ifndef NO_IMPLICIT_EXTERN_C
+#ifdef SYSTEM_IMPLICIT_EXTERN_C
          if (c_header_level)
            ++c_header_level;
          else if (LINEMAP_SYSP (new_map) == 2)
@@ -219,7 +219,7 @@ fe_file_change (const line_map_ordinary *new_map)
     }
   else if (new_map->reason == LC_LEAVE)
     {
-#ifndef NO_IMPLICIT_EXTERN_C
+#ifdef SYSTEM_IMPLICIT_EXTERN_C
       if (c_header_level && --c_header_level == 0)
        {
          if (LINEMAP_SYSP (new_map) == 2)
index 1d3238565d5a825ff6985a11564f3951873e303b..6802ef386eded2d498f0e4dc8e429bc6a2119b34 100644 (file)
@@ -922,7 +922,4 @@ extern long alpha_auto_offset;
 /* By default, turn on GDB extensions.  */
 #define DEFAULT_GDB_EXTENSIONS 1
 
-/* The system headers under Alpha systems are generally C++-aware.  */
-#define NO_IMPLICIT_EXTERN_C
-
 #define TARGET_SUPPORTS_WIDE_INT 1
index 54879c7b7e3dceeb8b7311be2070450a4b62a703..f78f279f0abe80e5a4d350b59ef9e10bb257282a 100644 (file)
@@ -48,9 +48,6 @@
     }                                          \
   while (false)
 
-/* Do not assume anything about header files.  */
-#define NO_IMPLICIT_EXTERN_C
-
 /* The GNU C++ standard library requires that these macros be defined.  */
 #undef CPLUSPLUS_CPP_SPEC
 #define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
index d8b0f377c47117338767fd089f5e5d61eed38276..ae160507491edd0a46abe5e43116d5dfdac6de19 100644 (file)
@@ -70,5 +70,3 @@ asm (TEXT_SECTION_ASM_OP);
 #undef SUBTARGET_DRIVER_SELF_SPECS
 #define SUBTARGET_DRIVER_SELF_SPECS \
      "%{mfdpic:-msim} %{mid-shared-library:-msim}"
-
-#define NO_IMPLICIT_EXTERN_C
index 84c92929b4a877cb887180ee81eeb9b804bc257d..e15f3f645ce49429910ff13a311c2edb1478cd88 100644 (file)
@@ -1030,8 +1030,6 @@ enum cris_symbol_type
 
 #define FUNCTION_MODE QImode
 
-#define NO_IMPLICIT_EXTERN_C
-
 /*
  * Local variables:
  * eval: (c-set-style "gnu")
index 16c3b60bb07d8b20a56ea5f256de1ba796a23f2b..591188a1d19257e9b54d5463e2c1860edf44c696 100644 (file)
@@ -43,9 +43,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #define DARWIN_X86 0
 #define DARWIN_PPC 0
 
-/* Don't assume anything about the header files.  */
-#define NO_IMPLICIT_EXTERN_C
-
 /* Suppress g++ attempt to link in the math library automatically. */
 #define MATH_LIBRARY ""
 
index ec9d9e0bf81f68ff15936c5bc7c7e1971a449fcb..4f53d2224a104dfd10afcbaf6b40c70ba75c25b7 100644 (file)
@@ -104,10 +104,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #undef  OBJECT_FORMAT_ELF
 #define OBJECT_FORMAT_ELF
 
-/* Don't assume anything about the header files.  */
-#undef  NO_IMPLICIT_EXTERN_C
-#define NO_IMPLICIT_EXTERN_C   1
-
 /* Follow DragonFly's standard headers (<machine/stdint.h>, etc...).  */
 
 #undef  WCHAR_TYPE
index 0c8bd29d27867640c14ca816a37690ed10c1d179..9463deabf7f622d2b5270b7a1dea47dc684f81da 100644 (file)
@@ -68,10 +68,6 @@ along with GCC; see the file COPYING3.  If not see
 #undef  OBJECT_FORMAT_ELF
 #define OBJECT_FORMAT_ELF
 
-/* Don't assume anything about the header files.  */
-#undef  NO_IMPLICIT_EXTERN_C
-#define NO_IMPLICIT_EXTERN_C   1
-
 /* Follow FreeBSD's standard headers (<sys/_types.h> etc...).  */
 
 #undef  WCHAR_TYPE
index cba3c0b92e3206e3cd3ed62b0ac46c4899d67cd6..aff034d55239c7469841321a55c4c494afa51d63 100644 (file)
@@ -26,9 +26,6 @@ a copy of the GCC Runtime Library Exception along with this program;
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
-/* Don't assume anything about the header files.  */
-#define NO_IMPLICIT_EXTERN_C
-
 #undef ASM_APP_ON
 #define ASM_APP_ON "#APP\n"
 
index 1d358858106137949df8a6c60e5190e8adc847d1..80a0a37e308e0f42b128f4ea7164511ad3840cc2 100644 (file)
@@ -378,9 +378,6 @@ do {                                                \
 #endif
 #endif
 
-/* Don't assume anything about the header files.  */
-#define NO_IMPLICIT_EXTERN_C
-
 #undef PROFILE_HOOK
 #define PROFILE_HOOK(LABEL)                                            \
   if (MAIN_NAME_P (DECL_NAME (current_function_decl)))                 \
index 42130edf95c2c744515d0d7c426426692fd950c5..01774cea4d62375c76f5864821cc0289753e1917 100644 (file)
@@ -23,9 +23,6 @@ along with GCC; see the file COPYING3.  If not see
 #undef PREFERRED_DEBUGGING_TYPE
 #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
 
-/* Don't assume anything about the header files.  */
-#define NO_IMPLICIT_EXTERN_C
-
 #undef BSS_SECTION_ASM_OP
 #define BSS_SECTION_ASM_OP "\t.section\t.bss"
 
index 339b0d1d8782c0f0f8c04bf34ae7fd5613628c73..fbcc668c079545f4a7bcec09189e37b3a6afd784 100644 (file)
@@ -98,8 +98,6 @@ crti.o%s \
 #undef WCHAR_TYPE_SIZE
 #define WCHAR_TYPE_SIZE BITS_PER_WORD
 
-#define NO_IMPLICIT_EXTERN_C 1
-
 #define TARGET_POSIX_IO
 
 #undef DBX_REGISTER_NUMBER
index 5c5cf7ffa3d01ff79a8fe4d822c6331197703df5..d50c6abf76bf7f9421eb82907cc2192b3205c00b 100644 (file)
@@ -185,9 +185,6 @@ do {                                                                \
 
 #define FLOAT_LIB_COMPARE_RETURNS_BOOL(MODE, COMPARISON) ((MODE) == TFmode)
 
-/* HP-UX headers are C++-compatible.  */
-#define NO_IMPLICIT_EXTERN_C
-
 /* HP-UX uses PROFILE_HOOK instead of FUNCTION_PROFILER but we need a
    FUNCTION_PROFILER defined because its use is not ifdefed.  When using
    PROFILE_HOOK, the profile call comes after the prologue.  */
index c1b69fa80bc1fe460aa7fbfa97b895a424594c1b..2a4a27594199fe6144d30595f0fe96d0a2fab23c 100644 (file)
@@ -516,8 +516,4 @@ do {                                                            \
 
 #define FUNCTION_MODE SImode
 
-#ifndef NO_IMPLICIT_EXTERN_C
-#define NO_IMPLICIT_EXTERN_C
-#endif
-
 #define STORE_FLAG_VALUE 1
index f6413c47a3b9545dc4d4e49d40e27986572e10b1..cfaca3724623d8e40587f723fd529cbc70cb3ee3 100644 (file)
 /* elfos.h should have already been included.  Now just override
    any conflicting definitions and add any extras.  */
 
-/* Do not assume anything about header files.  */
-#undef NO_IMPLICIT_EXTERN_C
-#define NO_IMPLICIT_EXTERN_C
-
 /* The GNU C++ standard library requires that these macros be defined.  */
 #undef CPLUSPLUS_CPP_SPEC
 #define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
index 50c6d07aa12fb7520b8b55f95c858125228fbcef..e2f768b9f7eaf6cd4ac26eb45e27ec5afb86eda3 100644 (file)
@@ -165,12 +165,6 @@ along with GCC; see the file COPYING3.  If not see
 # define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
 #endif
 
-/* We have C++ support in our system headers.  */
-
-#ifndef NO_IMPLICIT_EXTERN_C
-# define NO_IMPLICIT_EXTERN_C
-#endif
-
 #ifndef TARGET_POSIX_IO
 # define TARGET_POSIX_IO
 #endif
index dab96a69d28a5df6d2bd41cd51491d5226d89852..98d4f806ee9f1848db1669228e55b30fba44d6cb 100644 (file)
@@ -46,5 +46,3 @@ along with GCC; see the file COPYING3.  If not see
 
 #undef  ENDFILE_SPEC
 #define ENDFILE_SPEC "crtend%O%s crtn%O%s"
-
-#define NO_IMPLICIT_EXTERN_C 1
index aa998c294d528873728bbb04d53410581d8ad73b..7b46afcf7076b6f745f0cf3a8161f1796440084e 100644 (file)
@@ -789,8 +789,6 @@ typedef struct { int regs; int lib; } CUMULATIVE_ARGS;
 
 #define FUNCTION_MODE QImode
 
-#define NO_IMPLICIT_EXTERN_C
-
 /* mmix-knuth-mmixware target has no support of C99 runtime */
 #undef TARGET_LIBC_HAS_FUNCTION
 #define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function
index 8f9d5d35580062f1fa2bf022f4d9c764d5f0b537..dfd7c302176f98a188732d495b68e703f9af92ee 100644 (file)
@@ -149,10 +149,6 @@ along with GCC; see the file COPYING3.  If not see
 #undef TARGET_POSIX_IO
 #define TARGET_POSIX_IO
 
-/* Don't assume anything about the header files.  */
-#undef  NO_IMPLICIT_EXTERN_C
-#define NO_IMPLICIT_EXTERN_C    1
-
 /* Define some types that are the same on all NetBSD platforms,
    making them agree with <machine/ansi.h>.  */
 
index 19a632b7cfdf12b2d6d58f07f6e464cc8550bf3f..496cfb80cc196330dee7f539dbac38c9ef865273 100644 (file)
@@ -102,10 +102,6 @@ along with GCC; see the file COPYING3.  If not see
   "%{mlinker-opt:-O} %{!shared:-u main} %{static:-a archive} %{g*:-a archive} %{shared:-b}"
 #endif
 
-/* hpux8 and later have C++ compatible include files, so do not
-   pretend they are `extern "C"'.  */
-#define NO_IMPLICIT_EXTERN_C
-
 /* hpux11 and earlier don't have fputc_unlocked, so we must inhibit the
    transformation of fputs_unlocked and fprintf_unlocked to fputc_unlocked.  */
 #define DONT_HAVE_FPUTC_UNLOCKED
index 4f352746151100cca3267711cd0c894da0fb7274..756e9e5649b423840f654a0d1d506f7a182a9716 100644 (file)
    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
-/* Header files should be C++ aware in general.  */
-#undef  NO_IMPLICIT_EXTERN_C
-#define NO_IMPLICIT_EXTERN_C
-
 /* Yes!  We are ELF.  */
 #define        TARGET_OBJECT_FORMAT OBJECT_ELF
 
index a8357bb6e18d16ba3f5686313afdcb671a49d0b9..0a4686a693b4ccbad0d1a42cdee5f1420798934c 100644 (file)
@@ -32,5 +32,3 @@ along with GCC; see the file COPYING3.  If not see
 
 #undef  ENDFILE_SPEC
 #define ENDFILE_SPEC "crtend%O%s"
-
-#define NO_IMPLICIT_EXTERN_C 1
index 0a9316394134ca46fb34420d7d9ea8984dc289b8..2d585d84d01c813b15979df17bf4e7eaa75f3061 100644 (file)
@@ -23,6 +23,9 @@
 #undef  TARGET_AIX
 #define TARGET_AIX 1
 
+/* System headers are not C++-aware.  */
+#define SYSTEM_IMPLICIT_EXTERN_C 1
+
 /* Linux64.h wants to redefine TARGET_AIX based on -m64, but it can't be used
    in the #if conditional in options-default.h, so provide another macro.  */
 #undef  TARGET_AIX_OS
index 6b709fb6bab9970fd9444ac27920bf33a36e45c4..0c676349cf72e602ff65cd20a955c32a06c47d10 100644 (file)
    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
-/* Header files should be C++ aware in general.  */
-#undef  NO_IMPLICIT_EXTERN_C
-#define NO_IMPLICIT_EXTERN_C
-
 /* Yes!  We are ELF.  */
 #define        TARGET_OBJECT_FORMAT OBJECT_ELF
 
index af58eb16115906381f2651cf8fe1e82db3e85624..9879d5259cdd27facc97cc9e6667e3c974e351f3 100644 (file)
    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
-/* The system headers under RTEMS are C++-aware.  */
-#undef NO_IMPLICIT_EXTERN_C
-#define NO_IMPLICIT_EXTERN_C
-
 /*
  * Dummy start/end specification to let linker work as
  * needed by autoconf scripts using this compiler.
index 96802c61c022db1d5bf4cc1f660c19ea794acf46..5871a6bd3fb703a8ec1e3ab9357e9613397a5b3b 100644 (file)
@@ -30,7 +30,6 @@ along with GCC; see the file COPYING3.  If not see
 #define ASM_APP_ON "#APP\n"
 #undef ASM_APP_OFF
 #define ASM_APP_OFF "#NO_APP\n"
-#define NO_IMPLICIT_EXTERN_C
 #define TARGET_POSIX_IO
 
 #undef  SIZE_TYPE
index 4d3ff025a4e83a7669be6a5f7979cedfbbd95c72..9884856a98855fc686aa3ec88db891b25fc85131 100644 (file)
@@ -23,7 +23,3 @@ along with GCC; see the file COPYING3.  If not see
 
 #undef LIB_SPEC
 #define LIB_SPEC "-lc -lgloss"
-
-#undef  NO_IMPLICIT_EXTERN_C
-#define NO_IMPLICIT_EXTERN_C 1
-
index bc4f63df03bc8e0b5bceee4e52f48240de7f993d..8b67e78dee06d05ab845be5250ba858a9edbe9c1 100644 (file)
@@ -423,9 +423,6 @@ along with GCC; see the file COPYING3.  If not see
    produce the same format.  */
 #define NM_FLAGS "-png"
 \f
-/* The system headers under Solaris 2 are C++-aware since 2.0.  */
-#define NO_IMPLICIT_EXTERN_C
-
 #define STDC_0_IN_SYSTEM_HEADERS 1
 
 /* Support Solaris-specific format checking for cmn_err.  */
index 653eee9fc89412d1d75be4e531a285d5c674aabe..55880f841fc42af93c86deb0993796b737974a26 100644 (file)
@@ -41,9 +41,6 @@ along with GCC; see the file COPYING3.  If not see
     }                                          \
   while (0)
 
-/* Inherited from sp64-elf.  */
-#undef NO_IMPLICIT_EXTERN_C
-
 #undef ASM_SPEC
 #define ASM_SPEC "\
 -s %{" FPIE_OR_FPIC_SPEC ":-K PIC} \
index 0ee607cbe62ae318ac6cf1617eb2a4e168528c40..0c533322251a49f33c40eefe7e721ea7040cdd6c 100644 (file)
@@ -18,9 +18,6 @@ You should have received a copy of the GNU General Public License
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
-/* Don't assume anything about the header files.  */
-#define NO_IMPLICIT_EXTERN_C
-
 /* It's safe to pass -s always, even if -g is not used.  */
 #undef ASM_SPEC
 #define ASM_SPEC \
index 5414b2de69ac42963fe6645e52667b870556884a..3af2af0b77a732fb7d4a1f6c8a512c847dfba015 100644 (file)
@@ -27,9 +27,6 @@ along with GCC; see the file COPYING3.  If not see
 #undef SPARC_DEFAULT_CMODEL
 #define SPARC_DEFAULT_CMODEL CM_EMBMEDANY
 
-/* Don't assume anything about the header files.  */
-#define NO_IMPLICIT_EXTERN_C
-
 #undef ASM_SPEC
 #define ASM_SPEC "\
 -s %{" FPIE_OR_FPIC_SPEC ":-K PIC} \
index e846f1c2512658e5e5db2bb1c555ccf2dd7f2588..af7395852ceebd40153696924ab71963ee863060 100644 (file)
@@ -483,8 +483,6 @@ do {                                                                        \
 
 #define FUNCTION_MODE QImode
 
-#define NO_IMPLICIT_EXTERN_C 1
-
 
 /* Address spaces.  */
 #define ADDR_SPACE_EA  1
index 4667d8d96dcc65b078eb8a429e7c378e8a23ef8b..8adc6bedcae527ca4f3acdfb58a686a15b1be05d 100644 (file)
@@ -476,5 +476,3 @@ enum reg_class
 #define Pmode HImode
 
 #define FUNCTION_MODE HImode
-
-#define NO_IMPLICIT_EXTERN_C
index 04d226a8e05d823c44971c3e8b212e947feb977a..d3391a68bece82775048484be7ec53fa66590906 100644 (file)
@@ -834,12 +834,6 @@ extern const char * GHS_current_section_names [(int) COUNT_OF_GHS_SECTION_KINDS]
 
 #define TARGET_ASM_INIT_SECTIONS v850_asm_init_sections
 
-/* Define this so that the cc1plus will not think that system header files
-   need an implicit 'extern "C" { ... }' assumed.  This breaks testing C++
-   in a build directory where the libstdc++ header files are found via a
-   -isystem <path-to-build-dir>.  */
-#define NO_IMPLICIT_EXTERN_C
-
 #define ADJUST_INSN_LENGTH(INSN, LENGTH) \
   ((LENGTH) = v850_adjust_insn_length ((INSN), (LENGTH)))
 
index dac9a4565d5b3ec4c3e48afddf62b2d508803835..f1bd00fadb71fe65662a9c6f8dfc3298cc1155a6 100644 (file)
@@ -1211,14 +1211,6 @@ do                                                                       \
    machines this should be `QImode'. */
 #define FUNCTION_MODE SImode
 
-/* `NO_IMPLICIT_EXTERN_C'
-
-   Define this macro if the system header files support C++ as well as
-   C.  This macro inhibits the usual method of using system header
-   files in C++, which is to pretend that the file's contents are
-   enclosed in `extern "C" {...}'. */
-#define NO_IMPLICIT_EXTERN_C
-
 /* Dividing the Output into Sections (Texts, Data, ...)
 
    An object file is divided into sections containing different types
index f5c398ee4b97cbcf073404ecaeb2733d6a48036c..d83cbfb7cc929cf808e639b59f9d55daab861b33 100644 (file)
@@ -18,10 +18,6 @@ You should have received a copy of the GNU General Public License
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
-/* VxWorks headers are C++-aware.  */
-#undef  NO_IMPLICIT_EXTERN_C
-#define NO_IMPLICIT_EXTERN_C
-
 /* Most of these will probably be overridden by subsequent headers.  We
    undefine them here just in case, and define VXWORKS_ versions of each,
    to be used in port-specific vxworks.h.  */
index a95d7b3422947361cefc8a303b029c662051d9f6..736fd2d4eb55951de9c43bc0c525125635058111 100644 (file)
@@ -20,9 +20,6 @@ along with GCC; see the file COPYING3.  If not see
 
 #define TARGET_SECTION_TYPE_FLAGS xtensa_multibss_section_type_flags
 
-/* Don't assume anything about the header files.  */
-#define NO_IMPLICIT_EXTERN_C
-
 #undef ASM_APP_ON
 #define ASM_APP_ON "#APP\n"
 
index efa3cbdd65368f59339c3074911b0069c5ef936b..fc14d6a8af82fc37adbbca32f8c75521a60c2280 100644 (file)
@@ -1,3 +1,9 @@
+2018-07-05  Nathan Sidwell  <nathan@acm.org>
+
+       * cp/decl.c (decls_match): Check SYSTEM_IMPLICIT_EXTERN_C not
+       NO_IMPLICIT_EXTERN_C.
+       * cp/parser.c (cp_parser_parameter_declaration_clause): Likewise.
+
 2018-07-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
 
        PR c++/86398
index 0ea3c4a3490808739b3d326d32e3d4ec0f477724..6cfd1a005a80cf512e75faa378506f8f572996b9 100644 (file)
@@ -967,7 +967,7 @@ decls_match (tree newdecl, tree olddecl, bool record_versions /* = true */)
        {
          if (!prototype_p (f2) && DECL_EXTERN_C_P (olddecl)
              && (DECL_BUILT_IN (olddecl)
-#ifndef NO_IMPLICIT_EXTERN_C
+#ifdef SYSTEM_IMPLICIT_EXTERN_C
                  || (DECL_IN_SYSTEM_HEADER (newdecl) && !DECL_CLASS_SCOPE_P (newdecl))
                  || (DECL_IN_SYSTEM_HEADER (olddecl) && !DECL_CLASS_SCOPE_P (olddecl))
 #endif
@@ -977,7 +977,7 @@ decls_match (tree newdecl, tree olddecl, bool record_versions /* = true */)
              if (p1 == void_list_node)
                TREE_TYPE (newdecl) = TREE_TYPE (olddecl);
            }
-#ifndef NO_IMPLICIT_EXTERN_C
+#ifdef SYSTEM_IMPLICIT_EXTERN_C
          else if (!prototype_p (f1)
                   && (DECL_EXTERN_C_P (olddecl)
                       && DECL_IN_SYSTEM_HEADER (olddecl)
index 5edd0eed76e8983002ee9af22a7b0c4eccf16d77..366a0d894602db5f74ed89cf2e94938eb88fed57 100644 (file)
@@ -21363,7 +21363,7 @@ cp_parser_parameter_declaration_clause (cp_parser* parser)
   else if (token->type == CPP_CLOSE_PAREN)
     /* There are no parameters.  */
     {
-#ifndef NO_IMPLICIT_EXTERN_C
+#ifdef SYSTEM_IMPLICIT_EXTERN_C
       if (in_system_header_at (input_location)
          && current_class_type == NULL
          && current_lang_name == lang_name_c)
index 4297c0ca9ce569ca704c05702984b55eca879854..3f7a8fc15f83ae54d08e0af64f74f1f45f92a3df 100644 (file)
@@ -3735,7 +3735,7 @@ so certain warnings should be suppressed.
 @item 4
 This indicates that the following text should be treated as being
 wrapped in an implicit @code{extern "C"} block.
-@c maybe cross reference NO_IMPLICIT_EXTERN_C
+@c maybe cross reference SYSTEM_IMPLICIT_EXTERN_C
 @end table
 
 As an extension, the preprocessor accepts linemarkers in non-assembler
index 071d0ffc4143652bd330a8b67f9e2c36eb45cfcb..c7745c4efb7bc9cca22be57eb8f71e39fa000363 100644 (file)
@@ -23475,7 +23475,7 @@ deprecated.   @xref{Deprecated Features}.
 
 @item Implicit C language
 Old C system header files did not contain an @code{extern "C" @{@dots{}@}}
-scope to set the language.  On such systems, all header files are
+scope to set the language.  On such systems, all system header files are
 implicitly scoped inside a C language scope.  Also, an empty prototype
 @code{()} is treated as an unspecified number of arguments, rather
 than no arguments, as C++ demands.
index 1c5a80920f17694f1119696ec40faef1452fe1c1..057d650a61f519ab8bbfe5b947becbf3856b273e 100644 (file)
@@ -11149,11 +11149,10 @@ Define this hook to return the name of a header file to be included at the start
 Define this hook to add target-specific C++ implicit extern C functions. If this function returns true for the name of a file-scope function, that function implicitly gets extern "C" linkage rather than whatever language linkage the declaration would normally have.  An example of such function is WinMain on Win32 targets.
 @end deftypefn
 
-@defmac NO_IMPLICIT_EXTERN_C
-Define this macro if the system header files support C++ as well as C@.
-This macro inhibits the usual method of using system header files in
-C++, which is to pretend that the file's contents are enclosed in
-@samp{extern "C" @{@dots{}@}}.
+@defmac SYSTEM_IMPLICIT_EXTERN_C
+Define this macro if the system header files do not support C++@.
+This macro handles system header files by pretending that system
+header files are enclosed in @samp{extern "C" @{@dots{}@}}.
 @end defmac
 
 @findex #pragma
index bf2c64e15dba1b95179cfe682523f29bb8fa1151..7579423668e33fb8fe6e1c1043530b08c009eae7 100644 (file)
@@ -7657,11 +7657,10 @@ files @code{__STDC__} will always expand to 1.
 
 @hook TARGET_CXX_IMPLICIT_EXTERN_C
 
-@defmac NO_IMPLICIT_EXTERN_C
-Define this macro if the system header files support C++ as well as C@.
-This macro inhibits the usual method of using system header files in
-C++, which is to pretend that the file's contents are enclosed in
-@samp{extern "C" @{@dots{}@}}.
+@defmac SYSTEM_IMPLICIT_EXTERN_C
+Define this macro if the system header files do not support C++@.
+This macro handles system header files by pretending that system
+header files are enclosed in @samp{extern "C" @{@dots{}@}}.
 @end defmac
 
 @findex #pragma
index 88dffccb8ab876a4d7403f328b79af1492f54e41..8295577618a4009b6cb2a4dfbbed6ce8a78d0684 100644 (file)
@@ -1025,7 +1025,7 @@ extern void fancy_abort (const char *, int, const char *)
        LIBGCC2_LONG_DOUBLE_TYPE_SIZE STRUCT_VALUE                         \
        EH_FRAME_IN_DATA_SECTION TARGET_FLT_EVAL_METHOD_NON_DEFAULT        \
        JCR_SECTION_NAME TARGET_USE_JCR_SECTION SDB_DEBUGGING_INFO         \
-       SDB_DEBUG
+       SDB_DEBUG NO_IMPLICIT_EXTERN_C
 
 /* Hooks that are no longer used.  */
  #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE  \