From patchwork Wed Mar 22 10:47:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luc Van Oostenryck X-Patchwork-Id: 9638517 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id A1E996020B for ; Wed, 22 Mar 2017 10:56:03 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8B0A128415 for ; Wed, 22 Mar 2017 10:56:03 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7F75728455; Wed, 22 Mar 2017 10:56:03 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EE03028452 for ; Wed, 22 Mar 2017 10:56:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758806AbdCVK4D (ORCPT ); Wed, 22 Mar 2017 06:56:03 -0400 Received: from mail-wm0-f65.google.com ([74.125.82.65]:32887 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758855AbdCVK4C (ORCPT ); Wed, 22 Mar 2017 06:56:02 -0400 Received: by mail-wm0-f65.google.com with SMTP id n11so8581902wma.0 for ; Wed, 22 Mar 2017 03:56:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=54WJ96olpyxIEBHY5PGeCwuWUpcDlTV/hZdsWD0wvkM=; b=plAarMZLiT/6YbvlMQjbNmQ4xBo2z5Y4qA68bNBZBfXlQ0Cl0KaDApzZ35Ee1yFlRv R2PQ87mi04GNIk4rlZZXzBZ7+v/cxb73cY6nkuYj73WzocxGMeYqHCkayij1KYkWGuoO hN27dXaV+Vqtu4qfRRu8++JMta766GshuAYQ7i32yBfUwRcvkA5rqOljPquavDXp3Mck B4vkJIMJ7xqc4x2Hlvd+j6hXuYidRCMG4N+MxqyKcs0rdOZuXY43VL50SW8kd3ZmWfK0 QNthpPAu8az8Qzlej22+S5u9xCC8Rs8c6C83jEqbCNTkn5g8REiXVjHtHZ9rdv8MhkaK mGOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=54WJ96olpyxIEBHY5PGeCwuWUpcDlTV/hZdsWD0wvkM=; b=jtiIyOHDEDnYFCylKSE+AEaGA8F13hVXGSlsYhojKGO6qpNxYLbHIKuYCcBdBGPPIP Ydi5l+hSEYynfpAiXEqb9YeG8wq8UX6KW7EhSnEE0oSmCulvqMJexnd7ZiSjS+k4Hs9z HRBvDvs2K5kFBDNVI7U54cmOCMqasoHG3WvSjs8Tc4+B/xuFs9KrbPEge0ZvVPfWtt7g L6djRs0tn//v+l6GkPrq11fOOiO5JhcytvwJRmB5f2eOhokMWCsiP9ZcLW3mQgBcS1ka 6RzHWZhSm+kb78FCdjd0qevnoDeWpA3+4SQNt+vEZo8LbfBCG/AH8Uv0huL8yrFGSJRb 1Phw== X-Gm-Message-State: AFeK/H2TB1d/l7ao3MtcUA6j9RYqrWEXZ2pChveeXvwZBSUZgx4KkOzqCIMuo0RU7HDM4w== X-Received: by 10.28.175.129 with SMTP id y123mr7114347wme.67.1490179668823; Wed, 22 Mar 2017 03:47:48 -0700 (PDT) Received: from localhost.localdomain ([2a02:a03f:802:b00:2c54:1dc2:4f61:1d3f]) by smtp.gmail.com with ESMTPSA id i133sm21244661wmg.26.2017.03.22.03.47.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 22 Mar 2017 03:47:48 -0700 (PDT) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Christopher Li , Luc Van Oostenryck Subject: [PATCH] Add more declarations for more builtin functions Date: Wed, 22 Mar 2017 11:47:41 +0100 Message-Id: <20170322104741.82695-1-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.12.0 Sender: linux-sparse-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sparse@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Those are used by GCC testsuite. Signed-off-by: Luc Van Oostenryck --- lib.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/lib.c b/lib.c index 272d2c88a..fa9838ad2 100644 --- a/lib.c +++ b/lib.c @@ -841,23 +841,45 @@ static void predefined_macros(void) void declare_builtin_functions(void) { /* Gaah. gcc knows tons of builtin functions */ + add_pre_buffer("extern void *__builtin_memchr(const void *, int, __SIZE_TYPE__);\n"); add_pre_buffer("extern void *__builtin_memcpy(void *, const void *, __SIZE_TYPE__);\n"); add_pre_buffer("extern void *__builtin_mempcpy(void *, const void *, __SIZE_TYPE__);\n"); + add_pre_buffer("extern void *__builtin_memmove(void *, const void *, __SIZE_TYPE__);\n"); add_pre_buffer("extern void *__builtin_memset(void *, int, __SIZE_TYPE__);\n"); add_pre_buffer("extern int __builtin_memcmp(const void *, const void *, __SIZE_TYPE__);\n"); add_pre_buffer("extern char *__builtin_strcat(char *, const char *);\n"); add_pre_buffer("extern char *__builtin_strncat(char *, const char *, __SIZE_TYPE__);\n"); add_pre_buffer("extern int __builtin_strcmp(const char *, const char *);\n"); + add_pre_buffer("extern int __builtin_strncmp(const char *, const char *, __SIZE_TYPE__);\n"); + add_pre_buffer("extern int __builtin_strcasecmp(const char *, const char *);\n"); + add_pre_buffer("extern int __builtin_strncasecmp(const char *, const char *, __SIZE_TYPE__);\n"); add_pre_buffer("extern char *__builtin_strchr(const char *, int);\n"); + add_pre_buffer("extern char *__builtin_strrchr(const char *, int);\n"); add_pre_buffer("extern char *__builtin_strcpy(char *, const char *);\n"); add_pre_buffer("extern char *__builtin_strncpy(char *, const char *, __SIZE_TYPE__);\n"); + add_pre_buffer("extern char *__builtin_strdup(const char *);\n"); + add_pre_buffer("extern char *__builtin_strndup(const char *, __SIZE_TYPE__);\n"); add_pre_buffer("extern __SIZE_TYPE__ __builtin_strspn(const char *, const char *);\n"); add_pre_buffer("extern __SIZE_TYPE__ __builtin_strcspn(const char *, const char *);\n"); add_pre_buffer("extern char * __builtin_strpbrk(const char *, const char *);\n"); add_pre_buffer("extern char* __builtin_stpcpy(const char *, const char*);\n"); + add_pre_buffer("extern char* __builtin_stpncpy(const char *, const char*, __SIZE_TYPE__);\n"); add_pre_buffer("extern __SIZE_TYPE__ __builtin_strlen(const char *);\n"); + add_pre_buffer("extern char *__builtin_strstr(const char *, const char *);\n"); + add_pre_buffer("extern char *__builtin_strcasestr(const char *, const char *);\n"); + add_pre_buffer("extern char *__builtin_strnstr(const char *, const char *, __SIZE_TYPE__);\n"); + + /* And even some from */ + add_pre_buffer("extern int __builtin_bcmp(const void *, const void *, __SIZE_TYPE_);\n"); + add_pre_buffer("extern void __builtin_bcopy(const void *, void *, __SIZE_TYPE__);\n"); + add_pre_buffer("extern void __builtin_bzero(void *, __SIZE_TYPE__);\n"); + add_pre_buffer("extern char*__builtin_index(const char *, int);\n"); + add_pre_buffer("extern char*__builtin_rindex(const char *, int);\n"); /* And bitwise operations.. */ + add_pre_buffer("extern int __builtin_clrsb(int);\n"); + add_pre_buffer("extern int __builtin_clrsbl(long);\n"); + add_pre_buffer("extern int __builtin_clrsbll(long long);\n"); add_pre_buffer("extern int __builtin_clz(int);\n"); add_pre_buffer("extern int __builtin_clzl(long);\n"); add_pre_buffer("extern int __builtin_clzll(long long);\n"); @@ -867,6 +889,9 @@ void declare_builtin_functions(void) add_pre_buffer("extern int __builtin_ffs(int);\n"); add_pre_buffer("extern int __builtin_ffsl(long);\n"); add_pre_buffer("extern int __builtin_ffsll(long long);\n"); + add_pre_buffer("extern int __builtin_parity(unsigned int);\n"); + add_pre_buffer("extern int __builtin_parityl(unsigned long);\n"); + add_pre_buffer("extern int __builtin_parityll(unsigned long long);\n"); add_pre_buffer("extern int __builtin_popcount(unsigned int);\n"); add_pre_buffer("extern int __builtin_popcountl(unsigned long);\n"); add_pre_buffer("extern int __builtin_popcountll(unsigned long long);\n"); @@ -909,7 +934,9 @@ void declare_builtin_functions(void) add_pre_buffer("extern long __builtin_alpha_insql(long, long);\n"); add_pre_buffer("extern long __builtin_alpha_inslh(long, long);\n"); add_pre_buffer("extern long __builtin_alpha_cmpbge(long, long);\n"); + add_pre_buffer("extern int __builtin_abs(int);\n"); add_pre_buffer("extern long __builtin_labs(long);\n"); + add_pre_buffer("extern long long __builtin_llabs(long long);\n"); add_pre_buffer("extern double __builtin_fabs(double);\n"); add_pre_buffer("extern __SIZE_TYPE__ __builtin_va_arg_pack_len(void);\n"); @@ -957,6 +984,23 @@ void declare_builtin_functions(void) add_pre_buffer ("extern int __builtin___vsprintf_chk(char *, int, __SIZE_TYPE__, const char *, __builtin_va_list);\n"); add_pre_buffer ("extern int __builtin___vsnprintf_chk(char *, __SIZE_TYPE__, int, __SIZE_TYPE__, const char *, __builtin_va_list ap);\n"); add_pre_buffer ("extern void __builtin_unreachable(void);\n"); + + /* And some from */ + add_pre_buffer("extern void __builtin_abort(void);\n"); + add_pre_buffer("extern void *__builtin_calloc(__SIZE_TYPE__, __SIZE_TYPE__);\n"); + add_pre_buffer("extern void __builtin_exit(int);\n"); + add_pre_buffer("extern void *__builtin_malloc(__SIZE_TYPE__);\n"); + add_pre_buffer("extern void *__builtin_realloc(void *, __SIZE_TYPE__);\n"); + add_pre_buffer("extern void __builtin_free(void *);\n"); + + /* And some from */ + add_pre_buffer("extern int __builtin_printf(const char *, ...);\n"); + add_pre_buffer("extern int __builtin_sprintf(char *, const char *, ...);\n"); + add_pre_buffer("extern int __builtin_snprintf(char *, __SIZE_TYPE__, const char *, ...);\n"); + add_pre_buffer("extern int __builtin_puts(const char *);\n"); + add_pre_buffer("extern int __builtin_vprintf(const char *, __builtin_va_list);\n"); + add_pre_buffer("extern int __builtin_vsprintf(char *, const char *, __builtin_va_list);\n"); + add_pre_buffer("extern int __builtin_vsnprintf(char *, __SIZE_TYPE__, const char *, __builtin_va_list ap);\n"); } void create_builtin_stream(void)