aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/analyzer/uninit-6.c
blob: 75a99ad2c4483be1646d3fb180ea73601e18279f (plain)
1
2
3
4
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
/* Reduced from uninit false positive seen on Linux kernel with
   net/ethtool/ioctl.c  */

typedef signed char s8;
typedef unsigned int u32;
typedef __SIZE_TYPE__ size_t;

void *memset(void *s, int c, size_t n);

struct ethtool_link_settings {
  u32 cmd;
  s8 link_mode_masks_nwords;
};

struct ethtool_link_ksettings {
  struct ethtool_link_settings base;
  u32 lanes;
};

struct ethtool_link_settings
ethtool_get_link_ksettings(void) {
  struct ethtool_link_ksettings link_ksettings;

  memset(&link_ksettings, 0, sizeof(link_ksettings));
  link_ksettings.base.cmd = 0x0000004c;
  link_ksettings.base.link_mode_masks_nwords = -3;

  return link_ksettings.base;
}