Last active
March 22, 2022 16:19
-
-
Save jhgorse/fa99d7b97213743ce634c8f2f0c18b96 to your computer and use it in GitHub Desktop.
This file contains hidden or 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 <[email protected]> | |
X-Git-Url: https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff_plain;h=ec1cc0263f156f70693a62cf17b254a0029f4852 | |
2016-02-19 Jakub Jelinek <[email protected]> | |
Bernd Edlinger <[email protected]> | |
* 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 a80abb57b26..571c4168bd2 100644 | |
--- a/gcc/cp/ChangeLog | |
+++ b/gcc/cp/ChangeLog | |
@@ -1,3 +1,12 @@ | |
+2016-02-19 Jakub Jelinek <[email protected]> | |
+ Bernd Edlinger <[email protected]> | |
+ | |
+ * 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 <[email protected]> | |
PR c++/69850 | |
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in | |
index 671ce12f216..2286c64a8fb 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 2784edcafe9..8d7f015bf16 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 d8e02c95ad6..9a372496ca5 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 <[email protected]>." | |
#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 c73a16bd443..53367100de9 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