// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s

// Should be 3 hello strings, two global (of different sizes), the rest are
// shared.

// CHECK: @.str = private unnamed_addr constant [6 x i8] c"hello\00"
// CHECK: @f1.x = internal global i8* getelementptr inbounds ([6 x i8]* @.str, i32 0, i32 0)
// CHECK: @f2.x = internal global [6 x i8] c"hello\00", align 1
// CHECK: @f3.x = internal global [8 x i8] c"hello\00\00\00", align 1
// CHECK: @f4.x = internal global %struct.s { i8* getelementptr inbounds ([6 x i8]* @.str, i32 0, i32 0) }
// CHECK: @x = global [3 x i8] c"ola", align 1

void bar(const char *);

// CHECK: define void @f0()
void f0() {
  bar("hello");
  // CHECK: call void @bar({{.*}} @.str
}

// CHECK: define void @f1()
void f1() {
  static char *x = "hello";
  bar(x);
  // CHECK: [[T1:%.*]] = load i8** @f1.x
  // CHECK: call void @bar(i8* [[T1:%.*]])
}

// CHECK: define void @f2()
void f2() {
  static char x[] = "hello";
  bar(x);
  // CHECK: call void @bar({{.*}} @f2.x
}

// CHECK: define void @f3()
void f3() {
  static char x[8] = "hello";
  bar(x);
  // CHECK: call void @bar({{.*}} @f3.x
}

void gaz(void *);

// CHECK: define void @f4()
void f4() {
  static struct s {
    char *name;
  } x = { "hello" };
  gaz(&x);
  // CHECK: call void @gaz({{.*}} @f4.x
}

char x[3] = "ola";

