检测wcast-align无法检测到的对齐问题

时间:2014-10-27 07:23:32

标签: c arm memory-alignment gcc-warning

我将一个庞大的应用程序从PowerPC移植到ARM。我决定使用gcc选项-Wcast-align来检测可能导致对齐问题的实例。 但后来,我想到了-Wcast-align选项无法检测到的情况。

例如:

typedef struct sample_s {
  uint8_t c;
  double i;
} __attribute__((packed)) sample_t;

void main ( void ) {
  double *i;
  sample_t  check;
  check.i = 2;
  i = &check.i;
  printf("i= %a\n", *i);
}

ARM将针对上述代码引发对齐异常,但-Wcast-align不会报告此情况。 有没有其他方法来检测此类实例?

0 个答案:

没有答案