1// Copyright (c) 2016 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "trivial_ctor.h"
6
7// Due to https://bugs.chromium.org/p/chromium/issues/detail?id=663463, we treat
8// templated classes/structs as non-trivial, even if they really are trivial.
9// Thus, classes that have such a class/struct as a member get flagged as being
10// themselves non-trivial, even if (like |MySpinLock|) they are. Special-case
11// [std::]atomic_int.
12class TrivialTemplateOK {
13 private:
14  MySpinLock lock_;
15};
16
17int main() {
18  MySpinLock lock;
19  TrivialTemplateOK one;
20  return 0;
21}
22