19417b05ef982bd3dbcae2fa24083b5be00d6c4f1David Blaikie// RUN: %clang_cc1 -triple x86_64-unk-unk -o - -emit-llvm -g %s | FileCheck %s
2d7f6050113598797078f2718bc9f76c3ae35f0dfDaniel Dunbar
35c11d4e486b1b3ae40b48a3088d99adb56a8a9e3Chris Lattner// PR3023
4d7f6050113598797078f2718bc9f76c3ae35f0dfDaniel Dunbarvoid convert(void) {
5d7f6050113598797078f2718bc9f76c3ae35f0dfDaniel Dunbar  struct { typeof(0) f0; } v0;
6d7f6050113598797078f2718bc9f76c3ae35f0dfDaniel Dunbar}
71413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattner
891cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump
91413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattner// PR2784
109417b05ef982bd3dbcae2fa24083b5be00d6c4f1David Blaikiestruct OPAQUE; // CHECK: DW_TAG_structure_type
111413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattnertypedef struct OPAQUE *PTR;
121413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris LattnerPTR p;
131413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattner
141413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattner
151413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattner// PR2950
161413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattnerstruct s0;
171413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattnerstruct s0 { struct s0 *p; } g0;
181413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattner
191413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattnerstruct s0 *f0(struct s0 *a0) {
201413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattner  return a0->p;
211413217509ca3da8d1cd4e52feabbfe6da9bbae9Chris Lattner}
22010d5143800f6dc986f90169a694ccfec3d52038Nuno Lopes
2391cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump
244d6e8dd587f6ae0080b0d3acc9ac6a6a02b1ac3bAnders Carlsson// PR3134
254d6e8dd587f6ae0080b0d3acc9ac6a6a02b1ac3bAnders Carlssonchar xpto[];
264d6e8dd587f6ae0080b0d3acc9ac6a6a02b1ac3bAnders Carlsson
2791cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump
28010d5143800f6dc986f90169a694ccfec3d52038Nuno Lopes// PR3427
29010d5143800f6dc986f90169a694ccfec3d52038Nuno Lopesstruct foo {
301eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump  int a;
311eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump  void *ptrs[];
32010d5143800f6dc986f90169a694ccfec3d52038Nuno Lopes};
33010d5143800f6dc986f90169a694ccfec3d52038Nuno Lopesstruct foo bar;
343189e4be4f79f22e0e076e21615b9526de529b43Eli Friedman
3591cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump
363189e4be4f79f22e0e076e21615b9526de529b43Eli Friedman// PR4143
373189e4be4f79f22e0e076e21615b9526de529b43Eli Friedmanstruct foo2 {
381eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump  enum bar *bar;
393189e4be4f79f22e0e076e21615b9526de529b43Eli Friedman};
403189e4be4f79f22e0e076e21615b9526de529b43Eli Friedman
413189e4be4f79f22e0e076e21615b9526de529b43Eli Friedmanstruct foo2 foo2;
4291cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump
4391cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump
44386378de864577023c29da7ff6290758f1d6170aMike Stump// Radar 7325611
4591cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump// CHECK: "barfoo"
4691cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stumptypedef int barfoo;
4791cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stumpbarfoo foo() {
4891cc815ffd13d4a78ae1b5bd617e19dd555de4f4Mike Stump}
4931c79b470bf609028b585266a3127e7fb5f0a534Devang Patel
5031c79b470bf609028b585266a3127e7fb5f0a534Devang Patel// CHECK: __uint128_t
5131c79b470bf609028b585266a3127e7fb5f0a534Devang Patel__uint128_t foo128 ()
5231c79b470bf609028b585266a3127e7fb5f0a534Devang Patel{
5331c79b470bf609028b585266a3127e7fb5f0a534Devang Patel  __uint128_t int128 = 44;
5431c79b470bf609028b585266a3127e7fb5f0a534Devang Patel  return int128;
5531c79b470bf609028b585266a3127e7fb5f0a534Devang Patel}
56d15608e9861ae4c2667780e5f5b59d6b10472aecDevang Patel
57d15608e9861ae4c2667780e5f5b59d6b10472aecDevang Patel// CHECK: uint64x2_t
58d15608e9861ae4c2667780e5f5b59d6b10472aecDevang Pateltypedef unsigned long long uint64_t;
59d15608e9861ae4c2667780e5f5b59d6b10472aecDevang Pateltypedef uint64_t uint64x2_t __attribute__((ext_vector_type(2)));
60d15608e9861ae4c2667780e5f5b59d6b10472aecDevang Pateluint64x2_t extvectbar[4];
61