summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
d52f8c3)
* pt.c (tsubst): Keep the quals when looking through a typedef.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@194289
138bc75d-0d04-0410-961f-
82ee72b054a4
2012-12-06 Jason Merrill <jason@redhat.com>
2012-12-06 Jason Merrill <jason@redhat.com>
+ PR c++/55058
+ * pt.c (tsubst): Keep the quals when looking through a typedef.
+
PR c++/55249
* tree.c (build_vec_init_elt): Use the type of the initializer.
PR c++/55249
* tree.c (build_vec_init_elt): Use the type of the initializer.
- /* We don't have an instantiation yet, so drop the typedef. */
- t = DECL_ORIGINAL_TYPE (decl);
+ {
+ /* We don't have an instantiation yet, so drop the typedef. */
+ int quals = cp_type_quals (t);
+ t = DECL_ORIGINAL_TYPE (decl);
+ t = cp_build_qualified_type_real (t, quals,
+ complain | tf_ignore_bad_quals);
+ }
--- /dev/null
+// PR c++/55058
+
+template <typename T>
+struct A { };
+
+template <typename T>
+struct B {
+ B(const A<T> T::* p);
+ typedef A<T> D;
+};
+
+template <typename T>
+B<T>::B(const D T::* p) { }
+
+struct C {
+ C() : e() {};
+
+ const A<C> e;
+};
+
+B<C> g(&C::e);