Module Name: src Committed By: rillig Date: Fri Dec 17 17:21:48 UTC 2021
Modified Files: src/usr.bin/xlint/lint1: init.c Log Message: lint: inline sub-cases of brace_level_sub_type Having the code in separate functions did not add to the clarity of the code. The additional information from the function names can be grasped as easily from the case labels. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.215 -r1.216 src/usr.bin/xlint/lint1/init.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/xlint/lint1/init.c diff -u src/usr.bin/xlint/lint1/init.c:1.215 src/usr.bin/xlint/lint1/init.c:1.216 --- src/usr.bin/xlint/lint1/init.c:1.215 Fri Dec 17 11:06:15 2021 +++ src/usr.bin/xlint/lint1/init.c Fri Dec 17 17:21:48 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: init.c,v 1.215 2021/12/17 11:06:15 rillig Exp $ */ +/* $NetBSD: init.c,v 1.216 2021/12/17 17:21:48 rillig Exp $ */ /* * Copyright (c) 1994, 1995 Jochen Pohl @@ -38,7 +38,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) && !defined(lint) -__RCSID("$NetBSD: init.c,v 1.215 2021/12/17 11:06:15 rillig Exp $"); +__RCSID("$NetBSD: init.c,v 1.216 2021/12/17 17:21:48 rillig Exp $"); #endif #include <stdlib.h> @@ -537,49 +537,6 @@ brace_level_debug(const struct brace_lev #define brace_level_debug(level) do { } while (false) #endif -static const type_t * -brace_level_sub_type_struct_or_union(const struct brace_level *bl) -{ - - if (bl->bl_member == NULL) { - /* too many struct/union initializers */ - error(172); - return NULL; - } - - lint_assert(!is_unnamed(bl->bl_member)); - return sym_type(bl->bl_member); -} - -static const type_t * -brace_level_sub_type_array(const struct brace_level *bl, bool is_string) -{ - - if (!bl->bl_confused && !bl->bl_type->t_incomplete_array && - bl->bl_subscript >= (size_t)bl->bl_type->t_dim) { - /* too many array initializers, expected %d */ - error(173, bl->bl_type->t_dim); - } - - if (is_string && bl->bl_subscript == 0 && - bl->bl_type->t_subt->t_tspec != ARRAY) - return bl->bl_type; - - return bl->bl_type->t_subt; -} - -static const type_t * -brace_level_sub_type_scalar(const struct brace_level *bl) -{ - - if (bl->bl_scalar_done) { - /* too many initializers */ - error(174); - } - - return bl->bl_type; -} - /* Return the type of the sub-object that is currently being initialized. */ static const type_t * brace_level_sub_type(const struct brace_level *bl, bool is_string) @@ -591,11 +548,34 @@ brace_level_sub_type(const struct brace_ switch (bl->bl_type->t_tspec) { case STRUCT: case UNION: - return brace_level_sub_type_struct_or_union(bl); + if (bl->bl_member == NULL) { + /* too many struct/union initializers */ + error(172); + return NULL; + } + + lint_assert(!is_unnamed(bl->bl_member)); + return sym_type(bl->bl_member); + case ARRAY: - return brace_level_sub_type_array(bl, is_string); + if (!bl->bl_confused && !bl->bl_type->t_incomplete_array && + bl->bl_subscript >= (size_t)bl->bl_type->t_dim) { + /* too many array initializers, expected %d */ + error(173, bl->bl_type->t_dim); + } + + if (is_string && bl->bl_subscript == 0 && + bl->bl_type->t_subt->t_tspec != ARRAY) + return bl->bl_type; + return bl->bl_type->t_subt; + default: - return brace_level_sub_type_scalar(bl); + if (bl->bl_scalar_done) { + /* too many initializers */ + error(174); + } + + return bl->bl_type; } }