Source-Changes-HG archive

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

[src/trunk]: src/usr.bin/xlint/lint1 lint: move handling of function renaming...



details:   https://anonhg.NetBSD.org/src/rev/66b4080fdbef
branches:  trunk
changeset: 981960:66b4080fdbef
user:      rillig <rillig%NetBSD.org@localhost>
date:      Sat Mar 27 22:13:55 2021 +0000

description:
lint: move handling of function renaming over to declare_extern

No functional change.

diffstat:

 usr.bin/xlint/lint1/decl.c |  47 ++++++++++++++++++++-------------------------
 1 files changed, 21 insertions(+), 26 deletions(-)

diffs (85 lines):

diff -r d44d1dbfdc20 -r 66b4080fdbef usr.bin/xlint/lint1/decl.c
--- a/usr.bin/xlint/lint1/decl.c        Sat Mar 27 22:04:39 2021 +0000
+++ b/usr.bin/xlint/lint1/decl.c        Sat Mar 27 22:13:55 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: decl.c,v 1.165 2021/03/27 22:04:39 rillig Exp $ */
+/* $NetBSD: decl.c,v 1.166 2021/03/27 22:13:55 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -38,7 +38,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: decl.c,v 1.165 2021/03/27 22:04:39 rillig Exp $");
+__RCSID("$NetBSD: decl.c,v 1.166 2021/03/27 22:13:55 rillig Exp $");
 #endif
 
 #include <sys/param.h>
@@ -1895,10 +1895,19 @@
  * Process a single external declarator.
  */
 static void
-declare_extern(sym_t *dsym, bool initflg)
+declare_extern(sym_t *dsym, bool initflg, sbuf_t *renaming)
 {
        bool    dowarn, rval, redec;
        sym_t   *rdsym;
+       char    *s;
+
+       if (renaming != NULL) {
+               lint_assert(dsym->s_rename == NULL);
+
+               s = getlblk(1, renaming->sb_len + 1);
+               (void)memcpy(s, renaming->sb_name, renaming->sb_len + 1);
+               dsym->s_rename = s;
+       }
 
        check_function_definition(dsym, true);
 
@@ -2017,36 +2026,22 @@
 void
 declare(sym_t *decl, bool initflg, sbuf_t *renaming)
 {
-       char *s;
-
-       switch (dcs->d_ctx) {
-       case EXTERN:
-               if (renaming != NULL) {
-                       lint_assert(decl->s_rename == NULL);
-
-                       s = getlblk(1, renaming->sb_len + 1);
-                       (void)memcpy(s, renaming->sb_name, renaming->sb_len + 1);
-                       decl->s_rename = s;
-               }
-               declare_extern(decl, initflg);
-               break;
-       case ARG:
+
+       if (dcs->d_ctx == EXTERN) {
+               declare_extern(decl, initflg, renaming);
+       } else if (dcs->d_ctx == ARG) {
                if (renaming != NULL) {
                        /* symbol renaming can't be used on function arguments */
                        error(310);
-                       break;
-               }
-               (void)declare_argument(decl, initflg);
-               break;
-       default:
+               } else
+                       (void)declare_argument(decl, initflg);
+       } else {
                lint_assert(dcs->d_ctx == AUTO);
                if (renaming != NULL) {
                        /* symbol renaming can't be used on automatic variables */
                        error(311);
-                       break;
-               }
-               declare_local(decl, initflg);
-               break;
+               } else
+                       declare_local(decl, initflg);
        }
 
        if (initflg && !*current_initerr())



Home | Main Index | Thread Index | Old Index