PR c++/23839
* typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
for VAR_DECLs.
PR c++/23839
* g++.dg/parse/register1.C: New test.
From-SVN: r104225
+2005-09-13 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/23839
+ * typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
+ for VAR_DECLs.
+
2005-09-13 Mark Mitchell <mark@codesourcery.com>
PR c++/23842
if (DECL_REGISTER (x) && !TREE_ADDRESSABLE (x)
&& !DECL_ARTIFICIAL (x))
{
- if (DECL_HARD_REGISTER (x) != 0)
+ if (TREE_CODE (x) == VAR_DECL && DECL_HARD_REGISTER (x))
{
error
("address of explicit register variable %qD requested", x);
+2005-09-13 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/23839
+ * g++.dg/parse/register1.C: New test.
+
2005-09-13 Mark Mitchell <mark@codesourcery.com>
PR c++/23842
--- /dev/null
+// PR c++/23839
+
+class C
+{
+ int i;
+public:
+ C(int j) : i(j) { }
+ operator int() { return i; }
+};
+
+C f (register C x)
+{
+ return x + 31;
+}