1b9bd56e7f717194dfefc1c388de59eb5ef35aa8aDaniel Dunbar// RUN: %clang_cc1 -triple x86_64-unk-unk -o %t -emit-llvm -g %s
291cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump// RUN: FileCheck --input-file=%t %s
3d7f6050113598797078f2718bc9f76c3ae35f0dfDaniel Dunbar
45c11d4e486b1b3ae40b48a3088d99adb56a8a9e3Chris Lattner// PR3023
5d7f6050113598797078f2718bc9f76c3ae35f0dfDaniel Dunbarvoid convert(void) {
6d7f6050113598797078f2718bc9f76c3ae35f0dfDaniel Dunbar  struct { typeof(0) f0; } v0;
7d7f6050113598797078f2718bc9f76c3ae35f0dfDaniel Dunbar}
81413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattner
991cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump
101413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattner// PR2784
111413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattnerstruct OPAQUE;
121413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattnertypedef struct OPAQUE *PTR;
131413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris LattnerPTR p;
141413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattner
151413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattner
161413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattner// PR2950
171413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattnerstruct s0;
181413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattnerstruct s0 { struct s0 *p; } g0;
191413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattner
201413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattnerstruct s0 *f0(struct s0 *a0) {
211413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattner  return a0->p;
221413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattner}
23010d5143800f6dc986f90169a694ccfec3d52038Nuno Lopes
2491cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump
254d6e8dd587f6ae0080b0d3acc9ac6a6a02b1ac3bAnders Carlsson// PR3134
264d6e8dd587f6ae0080b0d3acc9ac6a6a02b1ac3bAnders Carlssonchar xpto[];
274d6e8dd587f6ae0080b0d3acc9ac6a6a02b1ac3bAnders Carlsson
2891cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump
29010d5143800f6dc986f90169a694ccfec3d52038Nuno Lopes// PR3427
30010d5143800f6dc986f90169a694ccfec3d52038Nuno Lopesstruct foo {
311eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump  int a;
321eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump  void *ptrs[];
33010d5143800f6dc986f90169a694ccfec3d52038Nuno Lopes};
34010d5143800f6dc986f90169a694ccfec3d52038Nuno Lopesstruct foo bar;
353189e4be4f79f22e0e076e21615b9526de529b43Eli Friedman
3691cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump
373189e4be4f79f22e0e076e21615b9526de529b43Eli Friedman// PR4143
383189e4be4f79f22e0e076e21615b9526de529b43Eli Friedmanstruct foo2 {
391eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump  enum bar *bar;
403189e4be4f79f22e0e076e21615b9526de529b43Eli Friedman};
413189e4be4f79f22e0e076e21615b9526de529b43Eli Friedman
423189e4be4f79f22e0e076e21615b9526de529b43Eli Friedmanstruct foo2 foo2;
4391cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump
4491cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump
45386378de864577023c29da7ff6290758f1d6170aMike Stump// Radar 7325611
4691cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump// CHECK: "barfoo"
4791cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stumptypedef int barfoo;
4891cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stumpbarfoo foo() {
4991cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump}
5031c79b470bf609028b585266a3127e7fb5f0a534Devang Patel
5131c79b470bf609028b585266a3127e7fb5f0a534Devang Patel// CHECK: __uint128_t
5231c79b470bf609028b585266a3127e7fb5f0a534Devang Patel__uint128_t foo128 ()
5331c79b470bf609028b585266a3127e7fb5f0a534Devang Patel{
5431c79b470bf609028b585266a3127e7fb5f0a534Devang Patel  __uint128_t int128 = 44;
5531c79b470bf609028b585266a3127e7fb5f0a534Devang Patel  return int128;
5631c79b470bf609028b585266a3127e7fb5f0a534Devang Patel}
57d15608e9861ae4c2667780e5f5b59d6b10472aecDevang Patel
58d15608e9861ae4c2667780e5f5b59d6b10472aecDevang Patel// CHECK: uint64x2_t
59d15608e9861ae4c2667780e5f5b59d6b10472aecDevang Pateltypedef unsigned long long uint64_t;
60d15608e9861ae4c2667780e5f5b59d6b10472aecDevang Pateltypedef uint64_t uint64x2_t __attribute__((ext_vector_type(2)));
61d15608e9861ae4c2667780e5f5b59d6b10472aecDevang Pateluint64x2_t extvectbar[4];
62