Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Backports:SLE-15-SP1:Update
trustedgrub2
0002-i386-x86_64-ppc-fix-switch-fallthrough-cas...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0002-i386-x86_64-ppc-fix-switch-fallthrough-cases-with-GC.patch of Package trustedgrub2
From 4bd4a88725604471fdbd86316c91967a7f4dba5a Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov <arvidjaar@gmail.com> Date: Tue, 4 Apr 2017 19:23:55 +0300 Subject: [PATCH 2/3] i386, x86_64, ppc: fix switch fallthrough cases with GCC7 In util/getroot and efidisk slightly modify exitsing comment to mostly retain it but still make GCC7 compliant with respect to fall through annotation. In grub-core/lib/xzembed/xz_dec_lzma2.c it adds same comments as upstream. In grub-core/tests/setjmp_tets.c declare functions as "noreturn" to suppress GCC7 warning. In grub-core/gnulib/regexec.c use new __attribute__, because existing annotation is not recognized by GCC7 parser (which requires that comment immediately precedes case statement). Otherwise add FALLTHROUGH comment. Closes: 50598 --- grub-core/commands/hdparm.c | 1 + grub-core/commands/nativedisk.c | 1 + grub-core/disk/cryptodisk.c | 1 + grub-core/disk/efi/efidisk.c | 2 +- grub-core/efiemu/mm.c | 1 + grub-core/gdb/cstub.c | 1 + grub-core/gnulib/regexec.c | 3 +++ grub-core/lib/xzembed/xz_dec_lzma2.c | 4 ++++ grub-core/lib/xzembed/xz_dec_stream.c | 6 ++++++ grub-core/loader/i386/linux.c | 3 +++ grub-core/tests/setjmp_test.c | 5 ++++- grub-core/video/ieee1275.c | 1 + grub-core/video/readers/jpeg.c | 1 + util/getroot.c | 2 +- util/grub-install.c | 1 + util/grub-mkimagexx.c | 1 + util/grub-mount.c | 1 + 17 files changed, 32 insertions(+), 3 deletions(-) Index: trustedgrub2-1.4.0/grub-core/commands/hdparm.c =================================================================== --- trustedgrub2-1.4.0.orig/grub-core/commands/hdparm.c +++ trustedgrub2-1.4.0/grub-core/commands/hdparm.c @@ -328,6 +328,7 @@ grub_cmd_hdparm (grub_extcmd_context_t c ata = ((struct grub_scsi *) disk->data)->data; break; } + /* FALLTHROUGH */ default: grub_disk_close (disk); return grub_error (GRUB_ERR_IO, "not an ATA device"); Index: trustedgrub2-1.4.0/grub-core/commands/nativedisk.c =================================================================== --- trustedgrub2-1.4.0.orig/grub-core/commands/nativedisk.c +++ trustedgrub2-1.4.0/grub-core/commands/nativedisk.c @@ -79,6 +79,7 @@ get_uuid (const char *name, char **uuid, case GRUB_DISK_DEVICE_XEN: if (getnative) break; + /* FALLTHROUGH */ /* Virtual disks. */ /* GRUB dynamically generated files. */ Index: trustedgrub2-1.4.0/grub-core/disk/cryptodisk.c =================================================================== --- trustedgrub2-1.4.0.orig/grub-core/disk/cryptodisk.c +++ trustedgrub2-1.4.0/grub-core/disk/cryptodisk.c @@ -287,6 +287,7 @@ grub_cryptodisk_endecrypt (struct grub_c break; case GRUB_CRYPTODISK_MODE_IV_PLAIN64: iv[1] = grub_cpu_to_le32 (sector >> 32); + /* FALLTHROUGH */ case GRUB_CRYPTODISK_MODE_IV_PLAIN: iv[0] = grub_cpu_to_le32 (sector & 0xFFFFFFFF); break; Index: trustedgrub2-1.4.0/grub-core/disk/efi/efidisk.c =================================================================== --- trustedgrub2-1.4.0.orig/grub-core/disk/efi/efidisk.c +++ trustedgrub2-1.4.0/grub-core/disk/efi/efidisk.c @@ -209,7 +209,7 @@ name_devices (struct grub_efidisk_data * { case GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE: is_hard_drive = 1; - /* Fall through by intention. */ + /* Intentionally fall through. */ case GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE: { struct grub_efidisk_data *parent, *parent2; Index: trustedgrub2-1.4.0/grub-core/efiemu/mm.c =================================================================== --- trustedgrub2-1.4.0.orig/grub-core/efiemu/mm.c +++ trustedgrub2-1.4.0/grub-core/efiemu/mm.c @@ -405,6 +405,7 @@ fill_hook (grub_uint64_t addr, grub_uint default: grub_dprintf ("efiemu", "Unknown memory type %d. Assuming unusable\n", type); + /* FALLTHROUGH */ case GRUB_MEMORY_RESERVED: return grub_efiemu_add_to_mmap (addr, size, GRUB_EFI_UNUSABLE_MEMORY); Index: trustedgrub2-1.4.0/grub-core/gdb/cstub.c =================================================================== --- trustedgrub2-1.4.0.orig/grub-core/gdb/cstub.c +++ trustedgrub2-1.4.0/grub-core/gdb/cstub.c @@ -336,6 +336,7 @@ grub_gdb_trap (int trap_no) /* sAA..AA: Step one instruction from AA..AA(optional). */ case 's': stepping = 1; + /* FALLTHROUGH */ /* cAA..AA: Continue at address AA..AA(optional). */ case 'c': Index: trustedgrub2-1.4.0/grub-core/gnulib/regexec.c =================================================================== --- trustedgrub2-1.4.0.orig/grub-core/gnulib/regexec.c +++ trustedgrub2-1.4.0/grub-core/gnulib/regexec.c @@ -4099,6 +4099,9 @@ check_node_accept (const re_match_contex case OP_UTF8_PERIOD: if (ch >= ASCII_CHARS) return false; +#if defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((fallthrough)); +#endif /* FALLTHROUGH */ #endif case OP_PERIOD: Index: trustedgrub2-1.4.0/grub-core/lib/xzembed/xz_dec_lzma2.c =================================================================== --- trustedgrub2-1.4.0.orig/grub-core/lib/xzembed/xz_dec_lzma2.c +++ trustedgrub2-1.4.0/grub-core/lib/xzembed/xz_dec_lzma2.c @@ -1044,6 +1044,8 @@ enum xz_ret xz_dec_lzma2_run( s->lzma2.sequence = SEQ_LZMA_PREPARE; + /* Fall through */ + case SEQ_LZMA_PREPARE: if (s->lzma2.compressed < RC_INIT_BYTES) return XZ_DATA_ERROR; @@ -1054,6 +1056,8 @@ enum xz_ret xz_dec_lzma2_run( s->lzma2.compressed -= RC_INIT_BYTES; s->lzma2.sequence = SEQ_LZMA_RUN; + /* Fall through */ + case SEQ_LZMA_RUN: /* * Set dictionary limit to indicate how much we want Index: trustedgrub2-1.4.0/grub-core/lib/xzembed/xz_dec_stream.c =================================================================== --- trustedgrub2-1.4.0.orig/grub-core/lib/xzembed/xz_dec_stream.c +++ trustedgrub2-1.4.0/grub-core/lib/xzembed/xz_dec_stream.c @@ -750,6 +750,7 @@ static enum xz_ret dec_main(struct xz_de s->sequence = SEQ_BLOCK_START; + /* FALLTHROUGH */ case SEQ_BLOCK_START: /* We need one byte of input to continue. */ if (b->in_pos == b->in_size) @@ -773,6 +774,7 @@ static enum xz_ret dec_main(struct xz_de s->temp.pos = 0; s->sequence = SEQ_BLOCK_HEADER; + /* FALLTHROUGH */ case SEQ_BLOCK_HEADER: if (!fill_temp(s, b)) return XZ_OK; @@ -783,6 +785,7 @@ static enum xz_ret dec_main(struct xz_de s->sequence = SEQ_BLOCK_UNCOMPRESS; + /* FALLTHROUGH */ case SEQ_BLOCK_UNCOMPRESS: ret = dec_block(s, b); if (ret != XZ_STREAM_END) @@ -810,6 +813,7 @@ static enum xz_ret dec_main(struct xz_de s->sequence = SEQ_BLOCK_CHECK; + /* FALLTHROUGH */ case SEQ_BLOCK_CHECK: ret = hash_validate(s, b, 0); if (ret != XZ_STREAM_END) @@ -858,6 +862,7 @@ static enum xz_ret dec_main(struct xz_de s->sequence = SEQ_INDEX_CRC32; + /* FALLTHROUGH */ case SEQ_INDEX_CRC32: ret = hash_validate(s, b, 1); if (ret != XZ_STREAM_END) @@ -866,6 +871,7 @@ static enum xz_ret dec_main(struct xz_de s->temp.size = STREAM_HEADER_SIZE; s->sequence = SEQ_STREAM_FOOTER; + /* FALLTHROUGH */ case SEQ_STREAM_FOOTER: if (!fill_temp(s, b)) return XZ_OK; Index: trustedgrub2-1.4.0/grub-core/loader/i386/linux.c =================================================================== --- trustedgrub2-1.4.0.orig/grub-core/loader/i386/linux.c +++ trustedgrub2-1.4.0/grub-core/loader/i386/linux.c @@ -998,10 +998,13 @@ grub_cmd_linux (grub_command_t cmd __att { case 'g': shift += 10; + /* FALLTHROUGH */ case 'm': shift += 10; + /* FALLTHROUGH */ case 'k': shift += 10; + /* FALLTHROUGH */ default: break; } Index: trustedgrub2-1.4.0/grub-core/tests/setjmp_test.c =================================================================== --- trustedgrub2-1.4.0.orig/grub-core/tests/setjmp_test.c +++ trustedgrub2-1.4.0/grub-core/tests/setjmp_test.c @@ -25,7 +25,10 @@ GRUB_MOD_LICENSE ("GPLv3+"); static grub_jmp_buf jmp_point; static int expected, ctr; -#pragma GCC diagnostic ignored "-Wmissing-noreturn" +/* This fixes GCC7 "unintentional fallthrough" warning */ +static void jmp0 (void) __attribute__ ((noreturn)); +static void jmp1 (void) __attribute__ ((noreturn)); +static void jmp2 (void) __attribute__ ((noreturn)); static void jmp0 (void) Index: trustedgrub2-1.4.0/grub-core/video/ieee1275.c =================================================================== --- trustedgrub2-1.4.0.orig/grub-core/video/ieee1275.c +++ trustedgrub2-1.4.0/grub-core/video/ieee1275.c @@ -181,6 +181,7 @@ grub_video_ieee1275_fill_mode_info (grub case 32: out->reserved_mask_size = 8; out->reserved_field_pos = 24; + /* FALLTHROUGH */ case 24: out->red_mask_size = 8; Index: trustedgrub2-1.4.0/grub-core/video/readers/jpeg.c =================================================================== --- trustedgrub2-1.4.0.orig/grub-core/video/readers/jpeg.c +++ trustedgrub2-1.4.0/grub-core/video/readers/jpeg.c @@ -736,6 +736,7 @@ grub_jpeg_decode_jpeg (struct grub_jpeg_ case JPEG_MARKER_SOS: /* Start Of Scan. */ if (grub_jpeg_decode_sos (data)) break; + /* FALLTHROUGH */ case JPEG_MARKER_RST0: /* Restart. */ case JPEG_MARKER_RST1: case JPEG_MARKER_RST2: Index: trustedgrub2-1.4.0/util/getroot.c =================================================================== --- trustedgrub2-1.4.0.orig/util/getroot.c +++ trustedgrub2-1.4.0/util/getroot.c @@ -99,7 +99,7 @@ grub_util_pull_device (const char *os_de { case GRUB_DEV_ABSTRACTION_LVM: grub_util_pull_lvm_by_command (os_dev); - /* Fallthrough in case that lvm-tools are unavailable. */ + /* Fallthrough - in case that lvm-tools are unavailable. */ case GRUB_DEV_ABSTRACTION_LUKS: grub_util_pull_devmapper (os_dev); return; Index: trustedgrub2-1.4.0/util/grub-install.c =================================================================== --- trustedgrub2-1.4.0.orig/util/grub-install.c +++ trustedgrub2-1.4.0/util/grub-install.c @@ -1850,6 +1850,7 @@ main (int argc, char *argv[]) free (mach_kernel); break; } + /* FALLTHROUGH */ case GRUB_INSTALL_PLATFORM_ARM_EFI: case GRUB_INSTALL_PLATFORM_ARM64_EFI: case GRUB_INSTALL_PLATFORM_IA64_EFI: Index: trustedgrub2-1.4.0/util/grub-mkimagexx.c =================================================================== --- trustedgrub2-1.4.0.orig/util/grub-mkimagexx.c +++ trustedgrub2-1.4.0/util/grub-mkimagexx.c @@ -781,6 +781,7 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e + sym->st_value - image_target->vaddr_offset)); } + /* FALLTHROUGH */ case R_IA64_LTOFF_FPTR22: *gpptr = grub_host_to_target64 (addend + sym_addr); grub_ia64_add_value_to_slot_21 ((grub_addr_t) target, Index: trustedgrub2-1.4.0/util/grub-mount.c =================================================================== --- trustedgrub2-1.4.0.orig/util/grub-mount.c +++ trustedgrub2-1.4.0/util/grub-mount.c @@ -536,6 +536,7 @@ argp_parser (int key, char *arg, struct if (arg[0] != '-') break; + /* FALLTHROUGH */ default: if (!arg) return 0;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor