Commit 122b42e1 authored by Hans Wennborg's avatar Hans Wennborg
Browse files

Merging r321777:

------------------------------------------------------------------------
r321777 | rsmith | 2018-01-03 17:02:18 -0800 (Wed, 03 Jan 2018) | 2 lines

PR35028: Retain duplicate alignas attributes in template instantiation.

------------------------------------------------------------------------

llvm-svn: 322676
parent 0462903e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -549,6 +549,7 @@ def Aligned : InheritableAttr {
                                          Keyword<"_Alignas">]>,
                   Accessor<"isDeclspec",[Declspec<"align">]>];
  let Documentation = [Undocumented];
  let DuplicatesAllowedWhileMerging = 1;
}

def AlignValue : Attr {
+11 −0
Original line number Diff line number Diff line
@@ -21,3 +21,14 @@ struct C { char a[16]; };

static_assert(sizeof(my_union<A, B, C>) == 16, "");
static_assert(alignof(my_union<A, B, C>) == 8, "");

namespace PR35028 {
  template<class X, int Alignment> struct alignas(X) alignas(long long) alignas(long double) alignas(Alignment) Aligned {
    union {
      long long align1;
      long double align2;
      char data[sizeof(X)];
    };
  };
  Aligned<int, 1> a;
}