Created
July 15, 2024 14:50
-
-
Save prince-chrismc/c27afb5f87dae1a7ea76341218672088 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From: edlinger <edlinger@138bc75d-0d04-0410-961f-82ee72b054a4> | |
Date: Fri, 19 Feb 2016 22:13:29 +0000 (+0000) | |
Subject: 2016-02-19 Jakub Jelinek <jakub@redhat.com> | |
X-Git-Url: https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff_plain;h=ec1cc0263f156f70693a62cf17b254a0029f4852 | |
2016-02-19 Jakub Jelinek <jakub@redhat.com> | |
Bernd Edlinger <bernd.edlinger@hotmail.de> | |
* Make-lang.in: Invoke gperf with -L C++. | |
* cfns.gperf: Remove prototypes for hash and libc_name_p | |
inlines. | |
* cfns.h: Regenerated. | |
* except.c (nothrow_libfn_p): Adjust. | |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@233572 138bc75d-0d04-0410-961f-82ee72b054a4 | |
--- | |
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog | |
index a80abb57b26b..571c4168bd29 100644 | |
--- a/gcc/cp/ChangeLog | |
+++ b/gcc/cp/ChangeLog | |
@@ -1,3 +1,12 @@ | |
+2016-02-19 Jakub Jelinek <jakub@redhat.com> | |
+ Bernd Edlinger <bernd.edlinger@hotmail.de> | |
+ | |
+ * Make-lang.in: Invoke gperf with -L C++. | |
+ * cfns.gperf: Remove prototypes for hash and libc_name_p | |
+ inlines. | |
+ * cfns.h: Regenerated. | |
+ * except.c (nothrow_libfn_p): Adjust. | |
+ | |
2016-02-19 Jakub Jelinek <jakub@redhat.com> | |
PR c++/69850 | |
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in | |
index 671ce12f216b..2286c64a8fb4 100644 | |
--- a/gcc/cp/Make-lang.in | |
+++ b/gcc/cp/Make-lang.in | |
@@ -112,7 +112,7 @@ else | |
# deleting the $(srcdir)/cp/cfns.h file. | |
$(srcdir)/cp/cfns.h: | |
endif | |
- gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \ | |
+ gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L C++ \ | |
$(srcdir)/cp/cfns.gperf --output-file $(srcdir)/cp/cfns.h | |
# | |
diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf | |
index 2784edcafe97..8d7f015bf16e 100644 | |
--- a/gcc/cp/cfns.gperf | |
+++ b/gcc/cp/cfns.gperf | |
@@ -1,3 +1,5 @@ | |
+%language=C++ | |
+%define class-name libc_name | |
%{ | |
/* Copyright (C) 2000-2016 Free Software Foundation, Inc. | |
@@ -16,14 +18,6 @@ for more details. | |
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/>. */ | |
-#ifdef __GNUC__ | |
-__inline | |
-#endif | |
-static unsigned int hash (const char *, unsigned int); | |
-#ifdef __GNUC__ | |
-__inline | |
-#endif | |
-const char * libc_name_p (const char *, unsigned int); | |
%} | |
%% | |
# The standard C library functions, for feeding to gperf; the result is used | |
diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h | |
index d8e02c95ad69..9a372496ca56 100644 | |
--- a/gcc/cp/cfns.h | |
+++ b/gcc/cp/cfns.h | |
@@ -1,5 +1,5 @@ | |
-/* ANSI-C code produced by gperf version 3.0.3 */ | |
-/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L ANSI-C cfns.gperf */ | |
+/* C++ code produced by gperf version 3.0.4 */ | |
+/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L C++ --output-file cfns.h cfns.gperf */ | |
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ | |
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ | |
@@ -28,7 +28,7 @@ | |
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." | |
#endif | |
-#line 1 "cfns.gperf" | |
+#line 3 "cfns.gperf" | |
/* Copyright (C) 2000-2016 Free Software Foundation, Inc. | |
@@ -47,25 +47,18 @@ for more details. | |
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/>. */ | |
-#ifdef __GNUC__ | |
-__inline | |
-#endif | |
-static unsigned int hash (const char *, unsigned int); | |
-#ifdef __GNUC__ | |
-__inline | |
-#endif | |
-const char * libc_name_p (const char *, unsigned int); | |
/* maximum key range = 391, duplicates = 0 */ | |
-#ifdef __GNUC__ | |
-__inline | |
-#else | |
-#ifdef __cplusplus | |
-inline | |
-#endif | |
-#endif | |
-static unsigned int | |
-hash (register const char *str, register unsigned int len) | |
+class libc_name | |
+{ | |
+private: | |
+ static inline unsigned int hash (const char *str, unsigned int len); | |
+public: | |
+ static const char *libc_name_p (const char *str, unsigned int len); | |
+}; | |
+ | |
+inline unsigned int | |
+libc_name::hash (register const char *str, register unsigned int len) | |
{ | |
static const unsigned short asso_values[] = | |
{ | |
@@ -122,14 +115,8 @@ hash (register const char *str, register unsigned int len) | |
return hval + asso_values[(unsigned char)str[len - 1]]; | |
} | |
-#ifdef __GNUC__ | |
-__inline | |
-#ifdef __GNUC_STDC_INLINE__ | |
-__attribute__ ((__gnu_inline__)) | |
-#endif | |
-#endif | |
const char * | |
-libc_name_p (register const char *str, register unsigned int len) | |
+libc_name::libc_name_p (register const char *str, register unsigned int len) | |
{ | |
enum | |
{ | |
diff --git a/gcc/cp/except.c b/gcc/cp/except.c | |
index c73a16bd4432..53367100de9c 100644 | |
--- a/gcc/cp/except.c | |
+++ b/gcc/cp/except.c | |
@@ -1040,7 +1040,8 @@ nothrow_libfn_p (const_tree fn) | |
unless the system headers are playing rename tricks, and if | |
they are, we don't want to be confused by them. */ | |
id = DECL_NAME (fn); | |
- return !!libc_name_p (IDENTIFIER_POINTER (id), IDENTIFIER_LENGTH (id)); | |
+ return !!libc_name::libc_name_p (IDENTIFIER_POINTER (id), | |
+ IDENTIFIER_LENGTH (id)); | |
} | |
/* Returns nonzero if an exception of type FROM will be caught by a |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment