brintos

brintos / llvm-project-archived public Read only

0
0
Text · 731 B · 3ffcc7b Raw
41 lines · c
1// RUN: %clang_cc1 %s -emit-llvm -o -2// REQUIRES: LP643 4// Aggregates of size zero should be dropped from argument list.5typedef long int Tlong;6struct S2411 {7  __attribute__((aligned)) Tlong:0;8};9 10extern struct S2411 a2411[5];11extern void checkx2411(struct S2411);12void test2411(void) {13  checkx2411(a2411[0]);14}15 16// Proper handling of zero sized fields during type conversion.17typedef unsigned long long int Tal2ullong __attribute__((aligned(2)));18struct S2525 {19 Tal2ullong: 0;20 struct {21 } e;22};23struct S2525 s2525;24 25struct {26  signed char f;27  char :0;28  struct{}h;29  char * i[5];30} data; 31 32// Taking address of a zero sized field.33struct Z {};34struct Y {35  int i;36  struct Z z;37};38void *f(struct Y *y) {39  return &y->z;40}41