1923099773fe4bbc52a25a5d3d92236b5e37cef93Ulrich Weigand// RUN: %clang -target i386-unknown-unknown -emit-llvm -S -o - %s | FileCheck %s
216f1f717af196b1448258857b2e6dcfe144b39d0James Molloy
316f1f717af196b1448258857b2e6dcfe144b39d0James Molloyconst int AA = 5;
416f1f717af196b1448258857b2e6dcfe144b39d0James Molloy
593ab6bf534fb6c26563c00f28a8fc5581bb71dfdStephen Lin// CHECK-LABEL: define i32 @f1
616f1f717af196b1448258857b2e6dcfe144b39d0James Molloyint f1(enum {AA,BB} E) {
716f1f717af196b1448258857b2e6dcfe144b39d0James Molloy    // CHECK: ret i32 1
816f1f717af196b1448258857b2e6dcfe144b39d0James Molloy    return BB;
916f1f717af196b1448258857b2e6dcfe144b39d0James Molloy}
1016f1f717af196b1448258857b2e6dcfe144b39d0James Molloy
1193ab6bf534fb6c26563c00f28a8fc5581bb71dfdStephen Lin// CHECK-LABEL: define i32 @f2
1216f1f717af196b1448258857b2e6dcfe144b39d0James Molloyint f2(enum {AA=7,BB} E) {
1316f1f717af196b1448258857b2e6dcfe144b39d0James Molloy    // CHECK: ret i32 7
1416f1f717af196b1448258857b2e6dcfe144b39d0James Molloy    return AA;
1516f1f717af196b1448258857b2e6dcfe144b39d0James Molloy}
1616f1f717af196b1448258857b2e6dcfe144b39d0James Molloy
1716f1f717af196b1448258857b2e6dcfe144b39d0James Molloy// Check nested function declarators work.
1816f1f717af196b1448258857b2e6dcfe144b39d0James Molloyint f(void (*g)(), enum {AA,BB} h) {
1916f1f717af196b1448258857b2e6dcfe144b39d0James Molloy    // CHECK: ret i32 0
2016f1f717af196b1448258857b2e6dcfe144b39d0James Molloy    return AA;
2116f1f717af196b1448258857b2e6dcfe144b39d0James Molloy}
22