bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Fix a wrong expression


From: Enze Li
Subject: [PATCH] Fix a wrong expression
Date: Tue, 5 Oct 2021 17:10:58 +0800

Based on De Morgan's law, the expression
!(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__)
is equal to (!defined __GNUC__ || defined __clang__ || !__OPTIMIZE).
The expression above looks weird. When any one of the conditions is
established, the subsequent judgment will be ignored.

This patch works around the issue by rewriting the expression of
judgment.

* lib/c++defs.h (_GL_CXXALIASWARN_2, _GL_CXXALIASWARN1_2): Don't enable
the GCC workaround to clang.
---
 lib/c++defs.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/c++defs.h b/lib/c++defs.h
index a47b61a00..b982b88f6 100644
--- a/lib/c++defs.h
+++ b/lib/c++defs.h
@@ -286,7 +286,7 @@
    _GL_CXXALIASWARN_2 (func, namespace)
 /* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
    we enable the warning only when not optimizing.  */
-# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__)
+# if defined __GNUC__ && !defined __clang__ && !__OPTIMIZE__
 #  define _GL_CXXALIASWARN_2(func,namespace) \
     _GL_WARN_ON_USE (func, \
                      "The symbol ::" #func " refers to the system function. " \
@@ -314,7 +314,7 @@
    _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
 /* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
    we enable the warning only when not optimizing.  */
-# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__)
+# if defined __GNUC__ && !defined __clang__ && !__OPTIMIZE__
 #  define 
_GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
     _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \
                          "The symbol ::" #func " refers to the system 
function. " \
-- 
2.30.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]