1
0
Fork 0

Kbuild updates for v4.12

- Improve Clang support
 
 - Clean up various Makefiles
 
 - Improve build log visibility (objtool, alpha, ia64)
 
 - Improve compiler flag evaluation for better build performance
 
 - Fix GCC version-dependent warning
 
 - Fix genksyms
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJZE6qLAAoJED2LAQed4NsGk8YP/R7ZajSruFRmathN+wO1GEUv
 +1cIJVpCv8OpM9fCSIuV3udAUUrH7Sj5IgHdg4P05/qmlgsG/4kUL5r9RyKdwjrA
 dWqp8KKh40/JAfYNlMcRGz3cB4csvhMhnzZgV0zMSM1BBPP/xu2bCXrD4f/TGFMg
 q04hHkmkesV0RUqOyPsCrKusxIsHhaGOmYUB285omGHO85IRItAW5CPh6sMhoJuQ
 x7d5ZaXKCUH2fHXVMaw7gXcg28loUfKVJcU+em/0YZxoNZ31y6brM5YY7buF4FoJ
 5RTXlvm12TUygY3fFCb3NURDSILHmL8Wk2wgFgYAC3NnXH1KJDOM4xxKXIVtTLGw
 d71/hAurlLLZzjwmdUSSrhD+1OjFRZ4a5TJK/o3xehKUzYmFB49bcSKwdQ4H0jnM
 m4iqNHw3rK+LJ0Zp71Ki3k3mcSW9yovpnJ2Uzi5Oz7g+oYAob7SZjejL2KsCtxZH
 sQZQE5YeZj39Ot1K3Zw9CWx3JcUXWKtNu8cH7hXBgCyKS7H56xgtmib/S2yjXGu0
 YIaMFJWTEB+FLrHRB4fYmeLG/kXIRn+N8Gy+/QUeXEHp4dFTV/il4Q2W+JAG35MS
 3IGMr8PEZA7gTSYDQ/2kpv0HXDCwYSDxN3p8dlrnLy1bokVJX7Nk1pNq6gXfOl/E
 4zIj3UsK0gPyO+CgprwC
 =Nka/
 -----END PGP SIGNATURE-----

Merge tag 'kbuild-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild

Pull Kbuild updates from Masahiro Yamada:

 - improve Clang support

 - clean up various Makefiles

 - improve build log visibility (objtool, alpha, ia64)

 - improve compiler flag evaluation for better build performance

 - fix GCC version-dependent warning

 - fix genksyms

* tag 'kbuild-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (23 commits)
  kbuild: dtbinst: remove unnecessary __dtbs_install_prep target
  ia64: beatify build log for gate.so and gate-syms.o
  alpha: make short build log available for division routines
  alpha: merge build rules of division routines
  alpha: add $(src)/ rather than $(obj)/ to make source file path
  Makefile: evaluate LDFLAGS_BUILD_ID only once
  objtool: make it visible in make V=1 output
  kbuild: clang: add -no-integrated-as to KBUILD_[AC]FLAGS
  kbuild: Add support to generate LLVM assembly files
  kbuild: Add better clang cross build support
  kbuild: drop -Wno-unknown-warning-option from clang options
  kbuild: fix asm-offset generation to work with clang
  kbuild: consolidate redundant sed script ASM offset generation
  frv: Use OFFSET macro in DEF_*REG()
  kbuild: avoid conflict between -ffunction-sections and -pg on gcc-4.7
  kbuild: Consolidate header generation from ASM offset information
  kbuild: use -Oz instead of -Os when using clang
  kbuild, LLVMLinux: Add -Werror to cc-option to support clang
  Kbuild: make designated_init attribute fatal
  kbuild: drop unneeded patterns '.*.orig' and '.*.rej' from distclean
  ...
zero-colors
Linus Torvalds 2017-05-10 20:11:05 -07:00
commit 593043d35d
16 changed files with 336 additions and 381 deletions

1
.gitignore vendored
View File

@ -33,6 +33,7 @@
*.lzo
*.patch
*.gcno
*.ll
modules.builtin
Module.symvers
*.dwo

25
Kbuild
View File

@ -7,31 +7,6 @@
# 4) Check for missing system calls
# 5) Generate constants.py (may need bounds.h)
# Default sed regexp - multiline due to syntax constraints
define sed-y
"/^->/{s:->#\(.*\):/* \1 */:; \
s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:->::; p;}"
endef
# Use filechk to avoid rebuilds when a header changes, but the resulting file
# does not
define filechk_offsets
(set -e; \
echo "#ifndef $2"; \
echo "#define $2"; \
echo "/*"; \
echo " * DO NOT MODIFY."; \
echo " *"; \
echo " * This file was generated by Kbuild"; \
echo " */"; \
echo ""; \
sed -ne $(sed-y); \
echo ""; \
echo "#endif" )
endef
#####
# 1) Generate bounds.h

View File

@ -632,13 +632,9 @@ include arch/$(SRCARCH)/Makefile
KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,)
KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,)
ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,)
KBUILD_CFLAGS += $(call cc-option,-fdata-sections,)
endif
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,)
KBUILD_CFLAGS += $(call cc-option,-Oz,-Os)
KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,)
else
ifdef CONFIG_PROFILE_ALL_BRANCHES
KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,)
@ -698,8 +694,16 @@ endif
KBUILD_CFLAGS += $(stackp-flag)
ifeq ($(cc-name),clang)
ifneq ($(CROSS_COMPILE),)
CLANG_TARGET := -target $(notdir $(CROSS_COMPILE:%-=%))
GCC_TOOLCHAIN := $(realpath $(dir $(shell which $(LD)))/..)
endif
ifneq ($(GCC_TOOLCHAIN),)
CLANG_GCC_TC := -gcc-toolchain $(GCC_TOOLCHAIN)
endif
KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,)
KBUILD_CPPFLAGS += $(call cc-option,-Wno-unknown-warning-option,)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable)
KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier)
KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
@ -710,10 +714,12 @@ KBUILD_CFLAGS += $(call cc-disable-warning, tautological-compare)
# See modpost pattern 2
KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,)
KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior)
KBUILD_CFLAGS += $(call cc-option, -no-integrated-as)
KBUILD_AFLAGS += $(call cc-option, -no-integrated-as)
else
# These warnings generated too much noise in a regular build.
# Use make W=1 to enable them (see scripts/Makefile.build)
# Use make W=1 to enable them (see scripts/Makefile.extrawarn)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
endif
@ -773,6 +779,11 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once)
endif
ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,)
KBUILD_CFLAGS += $(call cc-option,-fdata-sections,)
endif
# arch Makefile may override CC so keep this after arch Makefile is included
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
CHECKFLAGS += $(NOSTDINC_FLAGS)
@ -801,6 +812,9 @@ KBUILD_CFLAGS += $(call cc-option,-Werror=date-time)
# enforce correct pointer usage
KBUILD_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types)
# Require designated initializers for all marked structures
KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init)
# use the deterministic mode of AR if available
KBUILD_ARFLAGS := $(call ar-option,D)
@ -815,7 +829,7 @@ KBUILD_AFLAGS += $(ARCH_AFLAGS) $(KAFLAGS)
KBUILD_CFLAGS += $(ARCH_CFLAGS) $(KCFLAGS)
# Use --build-id when available.
LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\
LDFLAGS_BUILD_ID := $(patsubst -Wl$(comma)%,%,\
$(call cc-ldoption, -Wl$(comma)--build-id,))
KBUILD_LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID)
LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID)
@ -1315,8 +1329,8 @@ PHONY += distclean
distclean: mrproper
@find $(srctree) $(RCS_FIND_IGNORE) \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
-o -name '.*.rej' -o -name '*%' -o -name 'core' \) \
-o -name '*.bak' -o -name '#*#' -o -name '*%' \
-o -name 'core' \) \
-type f -print | xargs rm -f
@ -1361,6 +1375,8 @@ help:
@echo ' (default: $$(INSTALL_MOD_PATH)/lib/firmware)'
@echo ' dir/ - Build all files in dir and below'
@echo ' dir/file.[ois] - Build specified target only'
@echo ' dir/file.ll - Build the LLVM assembly file'
@echo ' (requires compiler support for LLVM assembly generation)'
@echo ' dir/file.lst - Build specified mixed source/assembly target only'
@echo ' (requires a recent binutils and recent build (System.map))'
@echo ' dir/file.ko - Build module including final link'
@ -1549,6 +1565,7 @@ clean: $(clean-dirs)
-o -name '*.symtypes' -o -name 'modules.order' \
-o -name modules.builtin -o -name '.tmp_*.o.*' \
-o -name '*.c.[012]*.*' \
-o -name '*.ll' \
-o -name '*.gcno' \) -type f -print | xargs rm -f
# Generate tags for editors
@ -1652,6 +1669,8 @@ endif
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
%.symtypes: %.c prepare scripts FORCE
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
%.ll: %.c prepare scripts FORCE
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
# Modules
/: prepare scripts FORCE

View File

@ -46,11 +46,6 @@ AFLAGS___remqu.o = -DREM
AFLAGS___divlu.o = -DDIV -DINTSIZE
AFLAGS___remlu.o = -DREM -DINTSIZE
$(obj)/__divqu.o: $(obj)/$(ev6-y)divide.S
$(cmd_as_o_S)
$(obj)/__remqu.o: $(obj)/$(ev6-y)divide.S
$(cmd_as_o_S)
$(obj)/__divlu.o: $(obj)/$(ev6-y)divide.S
$(cmd_as_o_S)
$(obj)/__remlu.o: $(obj)/$(ev6-y)divide.S
$(cmd_as_o_S)
$(addprefix $(obj)/,__divqu.o __remqu.o __divlu.o __remlu.o): \
$(src)/$(ev6-y)divide.S FORCE
$(call if_changed_rule,as_o_S)

View File

@ -14,21 +14,10 @@
#include <asm/thread_info.h>
#include <asm/gdb-stub.h>
#define DEF_PTREG(sym, reg) \
asm volatile("\n->" #sym " %0 offsetof(struct pt_regs, " #reg ")" \
: : "i" (offsetof(struct pt_regs, reg)))
#define DEF_IREG(sym, reg) \
asm volatile("\n->" #sym " %0 offsetof(struct user_context, " #reg ")" \
: : "i" (offsetof(struct user_context, reg)))
#define DEF_FREG(sym, reg) \
asm volatile("\n->" #sym " %0 offsetof(struct user_context, " #reg ")" \
: : "i" (offsetof(struct user_context, reg)))
#define DEF_0REG(sym, reg) \
asm volatile("\n->" #sym " %0 offsetof(struct frv_frame0, " #reg ")" \
: : "i" (offsetof(struct frv_frame0, reg)))
#define DEF_PTREG(sym, reg) OFFSET(sym, pt_regs, reg)
#define DEF_IREG(sym, reg) OFFSET(sym, user_context, reg)
#define DEF_FREG(sym, reg) OFFSET(sym, user_context, reg)
#define DEF_0REG(sym, reg) OFFSET(sym, frv_frame0, reg)
void foo(void)
{

View File

@ -50,32 +50,10 @@ CFLAGS_traps.o += -mfixed-range=f2-f5,f16-f31
# The gate DSO image is built using a special linker script.
include $(src)/Makefile.gate
# Calculate NR_IRQ = max(IA64_NATIVE_NR_IRQS, XEN_NR_IRQS, ...) based on config
define sed-y
"/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"
endef
quiet_cmd_nr_irqs = GEN $@
define cmd_nr_irqs
(set -e; \
echo "#ifndef __ASM_NR_IRQS_H__"; \
echo "#define __ASM_NR_IRQS_H__"; \
echo "/*"; \
echo " * DO NOT MODIFY."; \
echo " *"; \
echo " * This file was generated by Kbuild"; \
echo " *"; \
echo " */"; \
echo ""; \
sed -ne $(sed-y) $<; \
echo ""; \
echo "#endif" ) > $@
endef
# We use internal kbuild rules to avoid the "is up to date" message from make
arch/$(SRCARCH)/kernel/nr-irqs.s: arch/$(SRCARCH)/kernel/nr-irqs.c
$(Q)mkdir -p $(dir $@)
$(call if_changed_dep,cc_s_c)
include/generated/nr-irqs.h: arch/$(SRCARCH)/kernel/nr-irqs.s
$(Q)mkdir -p $(dir $@)
$(call cmd,nr_irqs)
include/generated/nr-irqs.h: arch/$(SRCARCH)/kernel/nr-irqs.s FORCE
$(call filechk,offsets,__ASM_NR_IRQS_H__)

View File

@ -6,7 +6,7 @@ extra-y += gate.so gate-syms.o gate.lds gate.o
CPPFLAGS_gate.lds := -P -C -U$(ARCH)
quiet_cmd_gate = GATE $@
quiet_cmd_gate = GATE $@
cmd_gate = $(CC) -nostdlib $(GATECFLAGS_$(@F)) -Wl,-T,$(filter-out FORCE,$^) -o $@
GATECFLAGS_gate.so = -shared -s -Wl,-soname=linux-gate.so.1 \

View File

@ -2,14 +2,14 @@
#define __LINUX_KBUILD_H
#define DEFINE(sym, val) \
asm volatile("\n->" #sym " %0 " #val : : "i" (val))
asm volatile("\n.ascii \"->" #sym " %0 " #val "\"" : : "i" (val))
#define BLANK() asm volatile("\n->" : : )
#define BLANK() asm volatile("\n.ascii \"->\"" : : )
#define OFFSET(sym, str, mem) \
DEFINE(sym, offsetof(struct str, mem))
#define COMMENT(x) \
asm volatile("\n->#" x)
asm volatile("\n.ascii \"->#" x "\"")
#endif

View File

@ -116,12 +116,12 @@ CC_OPTION_CFLAGS = $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
# Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586)
cc-option = $(call try-run,\
$(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2))
$(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2))
# cc-option-yn
# Usage: flag := $(call cc-option-yn,-march=winchip-c6)
cc-option-yn = $(call try-run,\
$(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n)
$(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n)
# cc-option-align
# Prefix align with either -falign or -malign
@ -131,7 +131,7 @@ cc-option-align = $(subst -functions=0,,\
# cc-disable-warning
# Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable)
cc-disable-warning = $(call try-run,\
$(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1)))
$(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1)))
# cc-name
# Expands to either gcc or clang

View File

@ -177,6 +177,14 @@ cmd_cc_symtypes_c = \
$(obj)/%.symtypes : $(src)/%.c FORCE
$(call cmd,cc_symtypes_c)
# LLVM assembly
# Generate .ll files from .c
quiet_cmd_cc_ll_c = CC $(quiet_modtag) $@
cmd_cc_ll_c = $(CC) $(c_flags) -emit-llvm -S -o $@ $<
$(obj)/%.ll: $(src)/%.c FORCE
$(call if_changed_dep,cc_ll_c)
# C (.c) files
# The C file is compiled and updated dependency information is generated.
# (See cmd_cc_o_c + relevant part of rule_cc_o_c)
@ -272,14 +280,14 @@ define rule_cc_o_c
$(call echo-cmd,checksrc) $(cmd_checksrc) \
$(call cmd_and_fixdep,cc_o_c) \
$(cmd_modversions_c) \
$(cmd_objtool) \
$(call echo-cmd,objtool) $(cmd_objtool) \
$(call echo-cmd,record_mcount) $(cmd_record_mcount)
endef
define rule_as_o_S
$(call cmd_and_fixdep,as_o_S) \
$(cmd_modversions_S) \
$(cmd_objtool)
$(call echo-cmd,objtool) $(cmd_objtool)
endef
# List module undefined symbols (or empty line if not enabled)

View File

@ -20,12 +20,6 @@ include include/config/auto.conf
include scripts/Kbuild.include
include $(src)/Makefile
PHONY += __dtbs_install_prep
__dtbs_install_prep:
ifeq ("$(dtbinst-root)", "$(obj)")
$(Q)mkdir -p $(INSTALL_DTBS_PATH)
endif
dtbinst-files := $(dtb-y)
dtbinst-dirs := $(dts-dirs)
@ -35,8 +29,6 @@ quiet_cmd_dtb_install = INSTALL $<
install-dir = $(patsubst $(dtbinst-root)%,$(INSTALL_DTBS_PATH)%,$(obj))
$(dtbinst-files) $(dtbinst-dirs): | __dtbs_install_prep
$(dtbinst-files): %.dtb: $(obj)/%.dtb
$(call cmd,dtb_install,$(install-dir))

View File

@ -64,7 +64,6 @@ ifeq ($(cc-name),clang)
KBUILD_CFLAGS += $(call cc-disable-warning, initializer-overrides)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-value)
KBUILD_CFLAGS += $(call cc-disable-warning, format)
KBUILD_CFLAGS += $(call cc-disable-warning, unknown-warning-option)
KBUILD_CFLAGS += $(call cc-disable-warning, sign-compare)
KBUILD_CFLAGS += $(call cc-disable-warning, format-zero-length)
KBUILD_CFLAGS += $(call cc-disable-warning, uninitialized)

View File

@ -420,3 +420,34 @@ quiet_cmd_xzmisc = XZMISC $@
cmd_xzmisc = (cat $(filter-out FORCE,$^) | \
xz --check=crc32 --lzma2=dict=1MiB) > $@ || \
(rm -f $@ ; false)
# ASM offsets
# ---------------------------------------------------------------------------
# Default sed regexp - multiline due to syntax constraints
#
# Use [:space:] because LLVM's integrated assembler inserts <tab> around
# the .ascii directive whereas GCC keeps the <space> as-is.
define sed-offsets
's:^[[:space:]]*\.ascii[[:space:]]*"\(.*\)".*:\1:; \
/^->/{s:->#\(.*\):/* \1 */:; \
s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:->::; p;}'
endef
# Use filechk to avoid rebuilds when a header changes, but the resulting file
# does not
define filechk_offsets
(set -e; \
echo "#ifndef $2"; \
echo "#define $2"; \
echo "/*"; \
echo " * DO NOT MODIFY."; \
echo " *"; \
echo " * This file was generated by Kbuild"; \
echo " */"; \
echo ""; \
sed -ne $(sed-offsets); \
echo ""; \
echo "#endif" )
endef

View File

@ -440,16 +440,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 4
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 524
#define YYLAST 522
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 55
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 49
/* YYNRULES -- Number of rules. */
#define YYNRULES 134
#define YYNRULES 133
/* YYNRULES -- Number of states. */
#define YYNSTATES 189
#define YYNSTATES 187
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@ -506,13 +506,13 @@ static const yytype_uint16 yyprhs[] =
97, 101, 105, 109, 112, 115, 118, 120, 122, 124,
126, 128, 130, 132, 134, 136, 138, 140, 142, 145,
146, 148, 150, 153, 155, 157, 159, 161, 164, 166,
168, 170, 175, 180, 183, 187, 191, 194, 196, 198,
200, 205, 210, 213, 217, 221, 224, 226, 230, 231,
233, 235, 239, 242, 245, 247, 248, 250, 252, 257,
262, 265, 269, 273, 277, 278, 280, 283, 287, 291,
292, 294, 296, 299, 303, 306, 307, 309, 311, 315,
318, 321, 323, 326, 327, 330, 334, 339, 341, 345,
347, 351, 354, 355, 357
168, 170, 175, 180, 183, 187, 190, 192, 194, 196,
201, 206, 209, 213, 217, 220, 222, 226, 227, 229,
231, 235, 238, 241, 243, 244, 246, 248, 253, 258,
261, 265, 269, 273, 274, 276, 279, 283, 287, 288,
290, 292, 295, 299, 302, 303, 305, 307, 311, 314,
317, 319, 322, 323, 326, 330, 335, 337, 341, 343,
347, 350, 351, 353
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
@ -536,25 +536,24 @@ static const yytype_int8 yyrhs[] =
74, 75, -1, 8, -1, 27, -1, 32, -1, 18,
-1, 72, 76, -1, 77, -1, 39, -1, 43, -1,
77, 49, 80, 50, -1, 77, 49, 1, 50, -1,
77, 35, -1, 49, 76, 50, -1, 49, 1, 50,
-1, 72, 78, -1, 79, -1, 39, -1, 43, -1,
79, 49, 80, 50, -1, 79, 49, 1, 50, -1,
79, 35, -1, 49, 78, 50, -1, 49, 1, 50,
-1, 81, 38, -1, 81, -1, 82, 48, 38, -1,
-1, 82, -1, 83, -1, 82, 48, 83, -1, 67,
84, -1, 72, 84, -1, 85, -1, -1, 39, -1,
43, -1, 85, 49, 80, 50, -1, 85, 49, 1,
50, -1, 85, 35, -1, 49, 84, 50, -1, 49,
1, 50, -1, 66, 76, 34, -1, -1, 88, -1,
52, 36, -1, 53, 90, 47, -1, 53, 1, 47,
-1, -1, 91, -1, 92, -1, 91, 92, -1, 66,
93, 46, -1, 1, 46, -1, -1, 94, -1, 95,
-1, 94, 48, 95, -1, 78, 97, -1, 39, 96,
-1, 96, -1, 54, 36, -1, -1, 97, 32, -1,
53, 99, 47, -1, 53, 99, 48, 47, -1, 100,
-1, 99, 48, 100, -1, 39, -1, 39, 52, 36,
-1, 31, 46, -1, -1, 31, -1, 30, 49, 39,
50, 46, -1
77, 35, -1, 49, 76, 50, -1, 72, 78, -1,
79, -1, 39, -1, 43, -1, 79, 49, 80, 50,
-1, 79, 49, 1, 50, -1, 79, 35, -1, 49,
78, 50, -1, 49, 1, 50, -1, 81, 38, -1,
81, -1, 82, 48, 38, -1, -1, 82, -1, 83,
-1, 82, 48, 83, -1, 67, 84, -1, 72, 84,
-1, 85, -1, -1, 39, -1, 43, -1, 85, 49,
80, 50, -1, 85, 49, 1, 50, -1, 85, 35,
-1, 49, 84, 50, -1, 49, 1, 50, -1, 66,
76, 34, -1, -1, 88, -1, 52, 36, -1, 53,
90, 47, -1, 53, 1, 47, -1, -1, 91, -1,
92, -1, 91, 92, -1, 66, 93, 46, -1, 1,
46, -1, -1, 94, -1, 95, -1, 94, 48, 95,
-1, 78, 97, -1, 39, 96, -1, 96, -1, 54,
36, -1, -1, 97, 32, -1, 53, 99, 47, -1,
53, 99, 48, 47, -1, 100, -1, 99, 48, 100,
-1, 39, -1, 39, 52, 36, -1, 31, 46, -1,
-1, 31, -1, 30, 49, 39, 50, 46, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@ -567,13 +566,13 @@ static const yytype_uint16 yyrline[] =
238, 240, 242, 247, 250, 251, 255, 256, 257, 258,
259, 260, 261, 262, 263, 264, 265, 266, 270, 275,
276, 280, 281, 285, 285, 285, 286, 294, 295, 299,
308, 317, 319, 321, 323, 325, 332, 333, 337, 338,
339, 341, 343, 345, 347, 352, 353, 354, 358, 359,
363, 364, 369, 374, 376, 380, 381, 389, 393, 395,
397, 399, 401, 406, 415, 416, 421, 426, 427, 431,
432, 436, 437, 441, 443, 448, 449, 453, 454, 458,
459, 460, 464, 468, 469, 473, 474, 478, 479, 482,
487, 495, 499, 500, 504
308, 317, 319, 321, 323, 330, 331, 335, 336, 337,
339, 341, 343, 345, 350, 351, 352, 356, 357, 361,
362, 367, 372, 374, 378, 379, 387, 391, 393, 395,
397, 399, 404, 413, 414, 419, 424, 425, 429, 430,
434, 435, 439, 441, 446, 447, 451, 452, 456, 457,
458, 462, 466, 467, 471, 472, 476, 477, 480, 485,
493, 497, 498, 502
};
#endif
@ -636,13 +635,13 @@ static const yytype_uint8 yyr1[] =
70, 70, 70, 70, 70, 70, 71, 71, 71, 71,
71, 71, 71, 71, 71, 71, 71, 71, 72, 73,
73, 74, 74, 75, 75, 75, 75, 76, 76, 77,
77, 77, 77, 77, 77, 77, 78, 78, 79, 79,
79, 79, 79, 79, 79, 80, 80, 80, 81, 81,
82, 82, 83, 84, 84, 85, 85, 85, 85, 85,
85, 85, 85, 86, 87, 87, 88, 89, 89, 90,
90, 91, 91, 92, 92, 93, 93, 94, 94, 95,
95, 95, 96, 97, 97, 98, 98, 99, 99, 100,
100, 101, 102, 102, 103
77, 77, 77, 77, 77, 78, 78, 79, 79, 79,
79, 79, 79, 79, 80, 80, 80, 81, 81, 82,
82, 83, 84, 84, 85, 85, 85, 85, 85, 85,
85, 85, 86, 87, 87, 88, 89, 89, 90, 90,
91, 91, 92, 92, 93, 93, 94, 94, 95, 95,
95, 96, 97, 97, 98, 98, 99, 99, 100, 100,
101, 102, 102, 103
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@ -655,13 +654,13 @@ static const yytype_uint8 yyr2[] =
3, 3, 3, 2, 2, 2, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 2, 0,
1, 1, 2, 1, 1, 1, 1, 2, 1, 1,
1, 4, 4, 2, 3, 3, 2, 1, 1, 1,
4, 4, 2, 3, 3, 2, 1, 3, 0, 1,
1, 3, 2, 2, 1, 0, 1, 1, 4, 4,
2, 3, 3, 3, 0, 1, 2, 3, 3, 0,
1, 1, 2, 3, 2, 0, 1, 1, 3, 2,
2, 1, 2, 0, 2, 3, 4, 1, 3, 1,
3, 2, 0, 1, 5
1, 4, 4, 2, 3, 2, 1, 1, 1, 4,
4, 2, 3, 3, 2, 1, 3, 0, 1, 1,
3, 2, 2, 1, 0, 1, 1, 4, 4, 2,
3, 3, 3, 0, 1, 2, 3, 3, 0, 1,
1, 2, 3, 2, 0, 1, 1, 3, 2, 2,
1, 2, 0, 2, 3, 4, 1, 3, 1, 3,
2, 0, 1, 5
};
/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
@ -675,189 +674,189 @@ static const yytype_uint8 yydefact[] =
0, 56, 0, 0, 65, 36, 57, 5, 10, 17,
23, 24, 26, 27, 33, 34, 11, 12, 13, 14,
15, 39, 0, 43, 6, 37, 0, 44, 22, 38,
45, 0, 0, 131, 69, 70, 0, 59, 0, 18,
19, 0, 132, 68, 25, 42, 129, 0, 127, 22,
40, 0, 115, 0, 0, 111, 9, 17, 41, 95,
0, 0, 0, 0, 58, 60, 61, 16, 0, 67,
133, 103, 123, 73, 0, 0, 125, 0, 7, 114,
108, 78, 79, 0, 0, 0, 123, 77, 0, 116,
117, 121, 107, 0, 112, 132, 96, 57, 0, 95,
92, 94, 35, 0, 75, 74, 62, 20, 104, 0,
0, 86, 89, 90, 130, 126, 128, 120, 0, 78,
0, 122, 76, 119, 82, 0, 113, 0, 0, 97,
0, 93, 100, 0, 134, 124, 0, 21, 105, 72,
71, 85, 0, 84, 83, 0, 0, 118, 102, 101,
0, 0, 106, 87, 91, 81, 80, 99, 98
45, 0, 0, 130, 69, 70, 0, 59, 0, 18,
19, 0, 131, 68, 25, 42, 128, 0, 126, 22,
40, 0, 114, 0, 0, 110, 9, 17, 41, 94,
0, 0, 0, 58, 60, 61, 16, 0, 67, 132,
102, 122, 73, 0, 0, 124, 0, 7, 113, 107,
77, 78, 0, 0, 0, 122, 76, 0, 115, 116,
120, 106, 0, 111, 131, 95, 57, 0, 94, 91,
93, 35, 0, 74, 62, 20, 103, 0, 0, 85,
88, 89, 129, 125, 127, 119, 0, 77, 0, 121,
75, 118, 81, 0, 112, 0, 0, 96, 0, 92,
99, 0, 133, 123, 0, 21, 104, 72, 71, 84,
0, 83, 82, 0, 0, 117, 101, 100, 0, 0,
105, 86, 90, 80, 79, 98, 97
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 1, 2, 3, 37, 79, 58, 38, 68, 69,
70, 82, 40, 41, 42, 43, 44, 71, 94, 95,
45, 125, 73, 116, 117, 140, 141, 142, 143, 130,
131, 46, 167, 168, 57, 83, 84, 85, 118, 119,
120, 121, 138, 53, 77, 78, 47, 102, 48
70, 82, 40, 41, 42, 43, 44, 71, 93, 94,
45, 124, 73, 115, 116, 138, 139, 140, 141, 129,
130, 46, 165, 166, 57, 83, 84, 85, 117, 118,
119, 120, 136, 53, 77, 78, 47, 101, 48
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -111
#define YYPACT_NINF -94
static const yytype_int16 yypact[] =
{
-111, 13, -111, 210, -111, -111, 28, -111, -111, -111,
-111, -111, -27, -111, 44, -111, -111, -111, -111, -111,
-111, -111, -111, -111, -24, -111, -20, -111, -111, -111,
31, -111, 32, 42, -111, -111, -111, -111, -111, 34,
481, -111, -111, -111, -111, -111, -111, -111, -111, -111,
-111, 51, 56, -111, -111, 52, 108, -111, 481, 52,
-111, 481, 58, -111, -111, -111, 19, 0, 54, 55,
-111, 34, 30, -18, -111, -111, 68, -25, -111, 481,
-111, 45, 33, 59, 159, -111, -111, 34, -111, 395,
57, 60, 81, 88, -111, 0, -111, -111, 34, -111,
-111, -111, -111, -111, 257, 72, -111, -23, -111, -111,
-111, 85, -111, 20, 106, 47, -111, -10, 97, 96,
-111, -111, -111, 99, -111, 115, -111, -111, 5, 50,
-111, 11, -111, 102, -111, -111, -111, -111, -22, 100,
103, 111, 104, -111, -111, -111, -111, -111, 113, -111,
121, -111, -111, 124, -111, 303, -111, 33, 132, -111,
139, -111, -111, 349, -111, -111, 122, -111, -111, -111,
-111, -111, 442, -111, -111, 140, 143, -111, -111, -111,
144, 145, -111, -111, -111, -111, -111, -111, -111
-94, 15, -94, 208, -94, -94, 34, -94, -94, -94,
-94, -94, -27, -94, -5, -94, -94, -94, -94, -94,
-94, -94, -94, -94, -25, -94, -16, -94, -94, -94,
-4, -94, 19, -24, -94, -94, -94, -94, -94, 24,
479, -94, -94, -94, -94, -94, -94, -94, -94, -94,
-94, 29, 48, -94, -94, 37, 106, -94, 479, 37,
-94, 479, 54, -94, -94, -94, 24, -2, 49, 53,
-94, 24, -14, -11, -94, -94, 47, 38, -94, 479,
-94, 51, 23, 55, 157, -94, -94, 24, -94, 393,
56, 58, 68, -94, -2, -94, -94, 24, -94, -94,
-94, -94, -94, 255, 67, -94, 5, -94, -94, -94,
50, -94, 7, 69, 40, -94, -8, 83, 88, -94,
-94, -94, 91, -94, 109, -94, -94, 4, 45, -94,
16, -94, 95, -94, -94, -94, -23, 92, 93, 108,
96, -94, -94, -94, -94, -94, 97, -94, 98, -94,
-94, 118, -94, 301, -94, 23, 101, -94, 104, -94,
-94, 347, -94, -94, 120, -94, -94, -94, -94, -94,
440, -94, -94, 111, 119, -94, -94, -94, 130, 137,
-94, -94, -94, -94, -94, -94, -94
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
-111, -111, 160, -111, -111, -111, -111, -51, -111, -111,
98, -1, -61, -37, -111, -111, -111, -78, -111, -111,
-53, -30, -111, -66, -111, -110, -111, -111, -60, -63,
-111, -111, -111, -111, -21, -111, -111, 116, -111, -111,
40, 90, 83, 152, -111, 105, -111, -111, -111
-94, -94, 158, -94, -94, -94, -94, -45, -94, -94,
94, -1, -61, -29, -94, -94, -94, -79, -94, -94,
-63, -7, -94, -93, -94, -92, -94, -94, -60, -57,
-94, -94, -94, -94, -19, -94, -94, 110, -94, -94,
33, 82, 78, 144, -94, 99, -94, -94, -94
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
number is the opposite. If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -111
#define YYTABLE_NINF -110
static const yytype_int16 yytable[] =
{
89, 90, 39, 74, 115, 60, 158, 86, 10, 72,
165, 129, 51, 4, 96, 55, 76, 103, 20, 59,
92, 148, 106, 107, 145, 154, 52, 29, 108, 56,
166, 104, 34, 56, 80, 115, 93, 115, 88, 155,
-95, 99, 136, 89, 126, 176, 162, 150, 159, 152,
129, 129, 74, 181, 128, -95, 67, 87, 64, 149,
163, 100, 65, 112, 101, 160, 161, 54, 66, 113,
67, 67, 111, 64, 49, 50, 112, 65, 87, 115,
61, 62, 113, 66, 67, 67, 149, 114, 63, 126,
112, 109, 110, 159, 89, 76, 113, 91, 67, 128,
97, 67, 89, 98, 52, 56, 122, 132, 144, 81,
133, 89, 184, 7, 8, 9, 10, 11, 12, 13,
105, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 134, 26, 27, 28, 29, 30, 31, 135, 114,
34, 35, 151, 156, 157, 109, 100, -22, 164, 171,
169, 36, 172, 170, -22, -109, 165, -22, 182, -22,
123, 5, -22, 173, 7, 8, 9, 10, 11, 12,
13, 174, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 178, 26, 27, 28, 29, 30, 31, 179,
185, 34, 35, 186, 187, 188, 137, 177, -22, 153,
124, 147, 36, 75, 0, -22, -110, 0, -22, 0,
-22, 6, 146, -22, 0, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 0, 0, 0, 0, 0, -22,
0, 0, 0, 36, 0, 0, -22, 0, 139, -22,
0, -22, 7, 8, 9, 10, 11, 12, 13, 0,
89, 90, 39, 114, 95, 156, 10, 60, 146, 163,
128, 74, 51, 86, 55, 4, 20, 99, 54, 148,
100, 150, 63, 59, 102, 29, 52, 152, 56, 164,
34, 134, 72, 114, 107, 114, 80, 56, 103, -94,
88, 153, 89, 125, 76, 61, 147, 157, 128, 128,
111, 160, 143, 127, -94, 67, 112, 87, 67, 92,
74, 174, 110, 64, 98, 161, 111, 65, 62, 179,
158, 159, 112, 66, 67, 67, 114, 113, 87, 147,
49, 50, 52, 111, 125, 105, 106, 76, 157, 112,
56, 67, 89, 91, 127, 96, 67, 108, 109, 104,
89, 97, 121, 142, 113, 149, 131, 81, 132, 89,
182, 7, 8, 9, 10, 11, 12, 13, 133, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 154,
26, 27, 28, 29, 30, 31, 155, 108, 34, 35,
99, 162, 167, 168, 170, -22, 169, 171, 172, 36,
163, 176, -22, -108, 177, -22, 180, -22, 122, 5,
-22, 183, 7, 8, 9, 10, 11, 12, 13, 184,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
0, 26, 27, 28, 29, 30, 31, 0, 0, 34,
35, 0, 0, 0, 0, -88, 0, 0, 0, 0,
36, 0, 0, 0, 175, 0, 0, -88, 7, 8,
9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 0, 26, 27, 28,
29, 30, 31, 0, 0, 34, 35, 0, 0, 0,
0, -88, 0, 0, 0, 0, 36, 0, 0, 0,
180, 0, 0, -88, 7, 8, 9, 10, 11, 12,
13, 0, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 0, 26, 27, 28, 29, 30, 31, 0,
0, 34, 35, 0, 0, 0, 0, -88, 0, 0,
0, 0, 36, 0, 0, 0, 0, 0, 0, -88,
185, 26, 27, 28, 29, 30, 31, 186, 175, 34,
35, 135, 145, 151, 123, 75, -22, 0, 0, 0,
36, 0, 0, -22, -109, 144, -22, 0, -22, 6,
0, -22, 0, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 0, 0, 0, 0, 0, -22, 0, 0,
0, 36, 0, 0, -22, 0, 137, -22, 0, -22,
7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 0, 26,
27, 28, 29, 30, 31, 0, 0, 34, 35, 0,
0, 0, 0, 0, 126, 0, 0, 0, 127, 0,
0, 0, 0, 0, 128, 0, 67, 7, 8, 9,
10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 0, 26, 27, 28, 29,
30, 31, 0, 0, 34, 35, 0, 0, 0, 0,
183, 0, 0, 0, 0, 36, 7, 8, 9, 10,
0, 0, 0, -87, 0, 0, 0, 0, 36, 0,
0, 0, 173, 0, 0, -87, 7, 8, 9, 10,
11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 0, 26, 27, 28, 29, 30,
31, 0, 0, 34, 35, 0, 0, 0, 0, 0,
0, 0, 0, 0, 36
31, 0, 0, 34, 35, 0, 0, 0, 0, -87,
0, 0, 0, 0, 36, 0, 0, 0, 178, 0,
0, -87, 7, 8, 9, 10, 11, 12, 13, 0,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
0, 26, 27, 28, 29, 30, 31, 0, 0, 34,
35, 0, 0, 0, 0, -87, 0, 0, 0, 0,
36, 0, 0, 0, 0, 0, 0, -87, 7, 8,
9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 0, 26, 27, 28,
29, 30, 31, 0, 0, 34, 35, 0, 0, 0,
0, 0, 125, 0, 0, 0, 126, 0, 0, 0,
0, 0, 127, 0, 67, 7, 8, 9, 10, 11,
12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 0, 26, 27, 28, 29, 30, 31,
0, 0, 34, 35, 0, 0, 0, 0, 181, 0,
0, 0, 0, 36, 7, 8, 9, 10, 11, 12,
13, 0, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 0, 26, 27, 28, 29, 30, 31, 0,
0, 34, 35, 0, 0, 0, 0, 0, 0, 0,
0, 0, 36
};
#define yypact_value_is_default(Yystate) \
(!!((Yystate) == (-111)))
(!!((Yystate) == (-94)))
#define yytable_value_is_error(Yytable_value) \
YYID (0)
static const yytype_int16 yycheck[] =
{
61, 61, 3, 40, 82, 26, 1, 58, 8, 39,
32, 89, 39, 0, 67, 39, 39, 35, 18, 39,
1, 1, 47, 48, 47, 35, 53, 27, 79, 53,
52, 49, 32, 53, 55, 113, 66, 115, 59, 49,
35, 71, 95, 104, 39, 155, 35, 113, 43, 115,
128, 129, 89, 163, 49, 50, 51, 58, 39, 39,
49, 31, 43, 43, 34, 128, 129, 23, 49, 49,
51, 51, 39, 39, 46, 47, 43, 43, 79, 157,
49, 49, 49, 49, 51, 51, 39, 54, 46, 39,
43, 46, 47, 43, 155, 39, 49, 39, 51, 49,
46, 51, 163, 48, 53, 53, 47, 50, 36, 1,
50, 172, 172, 5, 6, 7, 8, 9, 10, 11,
52, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 50, 24, 25, 26, 27, 28, 29, 50, 54,
32, 33, 36, 46, 48, 46, 31, 39, 46, 38,
50, 43, 48, 50, 46, 47, 32, 49, 36, 51,
1, 1, 54, 50, 5, 6, 7, 8, 9, 10,
11, 50, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 50, 24, 25, 26, 27, 28, 29, 50,
50, 32, 33, 50, 50, 50, 98, 157, 39, 116,
84, 111, 43, 51, -1, 46, 47, -1, 49, -1,
51, 1, 107, 54, -1, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, -1, -1, -1, -1, -1, 39,
-1, -1, -1, 43, -1, -1, 46, -1, 1, 49,
-1, 51, 5, 6, 7, 8, 9, 10, 11, -1,
61, 61, 3, 82, 67, 1, 8, 26, 1, 32,
89, 40, 39, 58, 39, 0, 18, 31, 23, 112,
34, 114, 46, 39, 35, 27, 53, 35, 53, 52,
32, 94, 39, 112, 79, 114, 55, 53, 49, 35,
59, 49, 103, 39, 39, 49, 39, 43, 127, 128,
43, 35, 47, 49, 50, 51, 49, 58, 51, 66,
89, 153, 39, 39, 71, 49, 43, 43, 49, 161,
127, 128, 49, 49, 51, 51, 155, 54, 79, 39,
46, 47, 53, 43, 39, 47, 48, 39, 43, 49,
53, 51, 153, 39, 49, 46, 51, 46, 47, 52,
161, 48, 47, 36, 54, 36, 50, 1, 50, 170,
170, 5, 6, 7, 8, 9, 10, 11, 50, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 46,
24, 25, 26, 27, 28, 29, 48, 46, 32, 33,
31, 46, 50, 50, 48, 39, 38, 50, 50, 43,
32, 50, 46, 47, 50, 49, 36, 51, 1, 1,
54, 50, 5, 6, 7, 8, 9, 10, 11, 50,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-1, 24, 25, 26, 27, 28, 29, -1, -1, 32,
33, -1, -1, -1, -1, 38, -1, -1, -1, -1,
43, -1, -1, -1, 1, -1, -1, 50, 5, 6,
7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, -1, 24, 25, 26,
27, 28, 29, -1, -1, 32, 33, -1, -1, -1,
-1, 38, -1, -1, -1, -1, 43, -1, -1, -1,
1, -1, -1, 50, 5, 6, 7, 8, 9, 10,
11, -1, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, -1, 24, 25, 26, 27, 28, 29, -1,
-1, 32, 33, -1, -1, -1, -1, 38, -1, -1,
-1, -1, 43, -1, -1, -1, -1, -1, -1, 50,
50, 24, 25, 26, 27, 28, 29, 50, 155, 32,
33, 97, 110, 115, 84, 51, 39, -1, -1, -1,
43, -1, -1, 46, 47, 106, 49, -1, 51, 1,
-1, 54, -1, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, -1, -1, -1, -1, -1, 39, -1, -1,
-1, 43, -1, -1, 46, -1, 1, 49, -1, 51,
5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, -1, 24,
25, 26, 27, 28, 29, -1, -1, 32, 33, -1,
-1, -1, -1, -1, 39, -1, -1, -1, 43, -1,
-1, -1, -1, -1, 49, -1, 51, 5, 6, 7,
8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, -1, 24, 25, 26, 27,
28, 29, -1, -1, 32, 33, -1, -1, -1, -1,
38, -1, -1, -1, -1, 43, 5, 6, 7, 8,
-1, -1, -1, 38, -1, -1, -1, -1, 43, -1,
-1, -1, 1, -1, -1, 50, 5, 6, 7, 8,
9, 10, 11, -1, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, -1, 24, 25, 26, 27, 28,
29, -1, -1, 32, 33, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 43
29, -1, -1, 32, 33, -1, -1, -1, -1, 38,
-1, -1, -1, -1, 43, -1, -1, -1, 1, -1,
-1, 50, 5, 6, 7, 8, 9, 10, 11, -1,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-1, 24, 25, 26, 27, 28, 29, -1, -1, 32,
33, -1, -1, -1, -1, 38, -1, -1, -1, -1,
43, -1, -1, -1, -1, -1, -1, 50, 5, 6,
7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, -1, 24, 25, 26,
27, 28, 29, -1, -1, 32, 33, -1, -1, -1,
-1, -1, 39, -1, -1, -1, 43, -1, -1, -1,
-1, -1, 49, -1, 51, 5, 6, 7, 8, 9,
10, 11, -1, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, -1, 24, 25, 26, 27, 28, 29,
-1, -1, 32, 33, -1, -1, -1, -1, 38, -1,
-1, -1, -1, 43, 5, 6, 7, 8, 9, 10,
11, -1, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, -1, 24, 25, 26, 27, 28, 29, -1,
-1, 32, 33, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 43
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@ -873,16 +872,16 @@ static const yytype_uint8 yystos[] =
89, 49, 49, 46, 39, 43, 49, 51, 63, 64,
65, 72, 76, 77, 68, 98, 39, 99, 100, 60,
89, 1, 66, 90, 91, 92, 62, 66, 89, 67,
83, 39, 1, 76, 73, 74, 75, 46, 48, 76,
31, 34, 102, 35, 49, 52, 47, 48, 62, 46,
47, 39, 43, 49, 54, 72, 78, 79, 93, 94,
95, 96, 47, 1, 92, 76, 39, 43, 49, 72,
84, 85, 50, 50, 50, 50, 75, 65, 97, 1,
80, 81, 82, 83, 36, 47, 100, 96, 1, 39,
78, 36, 78, 97, 35, 49, 46, 48, 1, 43,
84, 84, 35, 49, 46, 32, 52, 87, 88, 50,
50, 38, 48, 50, 50, 1, 80, 95, 50, 50,
1, 80, 36, 38, 83, 50, 50, 50, 50
83, 39, 76, 73, 74, 75, 46, 48, 76, 31,
34, 102, 35, 49, 52, 47, 48, 62, 46, 47,
39, 43, 49, 54, 72, 78, 79, 93, 94, 95,
96, 47, 1, 92, 76, 39, 43, 49, 72, 84,
85, 50, 50, 50, 75, 65, 97, 1, 80, 81,
82, 83, 36, 47, 100, 96, 1, 39, 78, 36,
78, 97, 35, 49, 46, 48, 1, 43, 84, 84,
35, 49, 46, 32, 52, 87, 88, 50, 50, 38,
48, 50, 50, 1, 80, 95, 50, 50, 1, 80,
36, 38, 83, 50, 50, 50, 50
};
#define yyerrok (yyerrstatus = 0)
@ -1928,12 +1927,12 @@ yyreduce:
case 75:
{ (yyval) = (yyvsp[(3) - (3)]); }
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
case 76:
case 79:
{ (yyval) = (yyvsp[(2) - (2)]); }
{ (yyval) = (yyvsp[(4) - (4)]); }
break;
case 80:
@ -1943,12 +1942,12 @@ yyreduce:
case 81:
{ (yyval) = (yyvsp[(4) - (4)]); }
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
case 82:
{ (yyval) = (yyvsp[(2) - (2)]); }
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
case 83:
@ -1958,27 +1957,27 @@ yyreduce:
case 84:
{ (yyval) = (yyvsp[(3) - (3)]); }
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
case 85:
case 86:
{ (yyval) = (yyvsp[(2) - (2)]); }
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
case 87:
{ (yyval) = (yyvsp[(3) - (3)]); }
{ (yyval) = NULL; }
break;
case 88:
case 90:
{ (yyval) = NULL; }
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
case 91:
{ (yyval) = (yyvsp[(3) - (3)]); }
{ (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); }
break;
case 92:
@ -1986,17 +1985,12 @@ yyreduce:
{ (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); }
break;
case 93:
{ (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); }
break;
case 95:
case 94:
{ (yyval) = NULL; }
break;
case 96:
case 95:
{ /* For version 2 checksums, we don't want to remember
private parameter names. */
@ -2005,13 +1999,18 @@ yyreduce:
}
break;
case 97:
case 96:
{ remove_node((yyvsp[(1) - (1)]));
(yyval) = (yyvsp[(1) - (1)]);
}
break;
case 97:
{ (yyval) = (yyvsp[(4) - (4)]); }
break;
case 98:
{ (yyval) = (yyvsp[(4) - (4)]); }
@ -2019,12 +2018,12 @@ yyreduce:
case 99:
{ (yyval) = (yyvsp[(4) - (4)]); }
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
case 100:
{ (yyval) = (yyvsp[(2) - (2)]); }
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
case 101:
@ -2034,11 +2033,6 @@ yyreduce:
case 102:
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
case 103:
{ struct string_list *decl = *(yyvsp[(2) - (3)]);
*(yyvsp[(2) - (3)]) = NULL;
add_symbol(current_name, SYM_NORMAL, decl, is_extern);
@ -2046,16 +2040,21 @@ yyreduce:
}
break;
case 104:
case 103:
{ (yyval) = NULL; }
break;
case 106:
case 105:
{ remove_list((yyvsp[(2) - (2)]), &(*(yyvsp[(1) - (2)]))->next); (yyval) = (yyvsp[(2) - (2)]); }
break;
case 106:
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
case 107:
{ (yyval) = (yyvsp[(3) - (3)]); }
@ -2063,70 +2062,65 @@ yyreduce:
case 108:
{ (yyval) = (yyvsp[(3) - (3)]); }
{ (yyval) = NULL; }
break;
case 109:
case 111:
{ (yyval) = NULL; }
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
case 112:
{ (yyval) = (yyvsp[(2) - (2)]); }
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
case 113:
{ (yyval) = (yyvsp[(3) - (3)]); }
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
case 114:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
case 115:
{ (yyval) = NULL; }
break;
case 118:
case 117:
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
case 119:
case 118:
{ (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); }
break;
case 120:
case 119:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
case 121:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
case 122:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
case 123:
{ (yyval) = NULL; }
break;
case 125:
case 124:
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
case 126:
case 125:
{ (yyval) = (yyvsp[(4) - (4)]); }
break;
case 129:
case 128:
{
const char *name = strdup((*(yyvsp[(1) - (1)]))->string);
@ -2134,7 +2128,7 @@ yyreduce:
}
break;
case 130:
case 129:
{
const char *name = strdup((*(yyvsp[(1) - (3)]))->string);
@ -2143,17 +2137,17 @@ yyreduce:
}
break;
case 131:
case 130:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
case 132:
case 131:
{ (yyval) = NULL; }
break;
case 134:
case 133:
{ export_symbol((*(yyvsp[(3) - (5)]))->string); (yyval) = (yyvsp[(5) - (5)]); }
break;

View File

@ -322,8 +322,6 @@ direct_declarator:
{ $$ = $2; }
| '(' declarator ')'
{ $$ = $3; }
| '(' error ')'
{ $$ = $3; }
;
/* Nested declarators differ from regular declarators in that they do

View File

@ -7,32 +7,8 @@ modpost-objs := modpost.o file2alias.o sumversion.o
devicetable-offsets-file := devicetable-offsets.h
define sed-y
"/^->/{s:->#\(.*\):/* \1 */:; \
s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:->::; p;}"
endef
quiet_cmd_offsets = GEN $@
define cmd_offsets
(set -e; \
echo "#ifndef __DEVICETABLE_OFFSETS_H__"; \
echo "#define __DEVICETABLE_OFFSETS_H__"; \
echo "/*"; \
echo " * DO NOT MODIFY."; \
echo " *"; \
echo " * This file was generated by Kbuild"; \
echo " *"; \
echo " */"; \
echo ""; \
sed -ne $(sed-y) $<; \
echo ""; \
echo "#endif" ) > $@
endef
$(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s
$(call if_changed,offsets)
$(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s FORCE
$(call filechk,offsets,__DEVICETABLE_OFFSETS_H__)
targets += $(devicetable-offsets-file) devicetable-offsets.s