// RUN: %clang_cc1 -triple=x86_64-pc-linux-gnu -Wover-aligned -verify %s

namespace test1 {
struct Test {
  template <typename T>
  struct SeparateCacheLines {
    T data;
  } __attribute__((aligned(256)));

  SeparateCacheLines<int> high_contention_data[10];
};

void helper() {
  Test t;
  new Test;  // expected-warning {{type 'test1::Test' requires 256 bytes of alignment and the default allocator only guarantees}}
  new Test[10];  // expected-warning {{type 'test1::Test' requires 256 bytes of alignment and the default allocator only guarantees}}
}
}

namespace test2 {
class Test {
  typedef int __attribute__((aligned(256))) aligned_int;
  aligned_int high_contention_data[10];
};

void helper() {
  Test t;
  new Test;  // expected-warning {{type 'test2::Test' requires 256 bytes of alignment and the default allocator only guarantees}}
  new Test[10];  // expected-warning {{type 'test2::Test' requires 256 bytes of alignment and the default allocator only guarantees}}
}
}

namespace test3 {
struct Test {
  template <typename T>
  struct SeparateCacheLines {
    T data;
  } __attribute__((aligned(256)));

  void* operator new(unsigned long) {
    return 0; // expected-warning {{'operator new' should not return a null pointer unless it is declared 'throw()'}}
  }

  SeparateCacheLines<int> high_contention_data[10];
};

void helper() {
  Test t;
  new Test;
  new Test[10];  // expected-warning {{type 'test3::Test' requires 256 bytes of alignment and the default allocator only guarantees}}
}
}

namespace test4 {
struct Test {
  template <typename T>
  struct SeparateCacheLines {
    T data;
  } __attribute__((aligned(256)));

  void* operator new[](unsigned long) {
    return 0; // expected-warning {{'operator new[]' should not return a null pointer unless it is declared 'throw()'}}
  }

  SeparateCacheLines<int> high_contention_data[10];
};

void helper() {
  Test t;
  new Test;  // expected-warning {{type 'test4::Test' requires 256 bytes of alignment and the default allocator only guarantees}}
  new Test[10];
}
}
