This is an automated email from the ASF dual-hosted git repository.

archer pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 681122bc238158c85ad5834a0dfad417780fdf39
Author: yanghuatao <yanghua...@xiaomi.com>
AuthorDate: Wed Apr 24 00:59:53 2024 +0800

    toolchain/ghs: Fix green hills toolchain build Vela MIN_MANT error
    
    "stdio/lib_dtoa_engine.c", line 102: error #166: invalid floating constant
            if (x < MIN_MANT)
                    ^
    
    "stdio/lib_dtoa_engine.c", line 102: warning #1626-D: concatenation with "("
              in macro "PASTE" does not create a valid token
            if (x < MIN_MANT)
                    ^
    
    "stdio/lib_dtoa_engine.c", line 102: error #109: expression preceding
              parentheses of apparent call must have (pointer-to-) function type
            if (x < MIN_MANT)
                    ^
    
    "stdio/lib_dtoa_engine.c", line 107: error #166: invalid floating constant
                    if (y < MAX_MANT)
                            ^
    
    "stdio/lib_dtoa_engine.c", line 107: warning #1626-D: concatenation with "("
              in macro "PASTE" does not create a valid token
                    if (y < MAX_MANT)
                            ^
    
    "stdio/lib_dtoa_engine.c", line 107: error #109: expression preceding
              parentheses of apparent call must have (pointer-to-) function type
                    if (y < MAX_MANT)
                            ^
    
    "stdio/lib_dtoa_engine.c", line 119: error #166: invalid floating constant
                    if (y >= MIN_MANT)
                             ^
    
    "stdio/lib_dtoa_engine.c", line 119: warning #1626-D: concatenation with "("
              in macro "PASTE" does not create a valid token
                    if (y >= MIN_MANT)
                             ^
    
    "stdio/lib_dtoa_engine.c", line 119: error #109: expression preceding
              parentheses of apparent call must have (pointer-to-) function type
                    if (y >= MIN_MANT)
                             ^
    
    "stdio/lib_dtoa_engine.c", line 144: error #166: invalid floating constant
            if (x >= MAX_MANT)
                     ^
    
    "stdio/lib_dtoa_engine.c", line 144: warning #1626-D: concatenation with "("
              in macro "PASTE" does not create a valid token
            if (x >= MAX_MANT)
                     ^
    
    "stdio/lib_dtoa_engine.c", line 144: error #109: expression preceding
              parentheses of apparent call must have (pointer-to-) function type
            if (x >= MAX_MANT)
                     ^
    
    "stdio/lib_dtoa_engine.c", line 153: error #166: invalid floating constant
            uint64_t decimal = MIN_MANT_INT;
                               ^
    
    "stdio/lib_dtoa_engine.c", line 153: warning #1626-D: concatenation with "("
              in macro "PASTE" does not create a valid token
            uint64_t decimal = MIN_MANT_INT;
                               ^
    
    "stdio/lib_dtoa_engine.c", line 153: error #109: expression preceding
              parentheses of apparent call must have (pointer-to-) function type
            uint64_t decimal = MIN_MANT_INT;
    
    Signed-off-by: yanghuatao <yanghua...@xiaomi.com>
---
 libs/libc/stdio/lib_dtoa_engine.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/libs/libc/stdio/lib_dtoa_engine.c 
b/libs/libc/stdio/lib_dtoa_engine.c
index 4bc8884f91..76ccb7dbf8 100644
--- a/libs/libc/stdio/lib_dtoa_engine.c
+++ b/libs/libc/stdio/lib_dtoa_engine.c
@@ -51,6 +51,20 @@
  * by pasting the value of DBL_DIG onto '1e' to
  */
 
+/* Green hills #define DBL_DIG (6) or #define DBL_DIG (15)
+ * we need remove "()" here
+ */
+
+#if DBL_DIG == 6
+#  undef DBL_DIG
+#  define DBL_DIG 6
+#endif
+
+#if DBL_DIG == 15
+#  undef DBL_DIG
+#  define DBL_DIG 15
+#endif
+
 #define PASTE(a)      1e##a
 #define SUBSTITUTE(a) PASTE(a)
 #define MIN_MANT      (SUBSTITUTE(DBL_DIG))

Reply via email to