@@ -1512,6 +1512,7 @@ class lvalue : public rvalue
15121512 void set_alignment (unsigned bytes);
15131513 unsigned get_alignment () const { return m_alignment; }
15141514 virtual string * get_name () const { return NULL ; }
1515+ virtual void set_name (const char *new_name) = 0;
15151516
15161517protected:
15171518 string *m_link_section;
@@ -1553,6 +1554,9 @@ class param : public lvalue
15531554 const char *access_as_lvalue (reproducer &r) final override ;
15541555
15551556 string * get_name () const final override { return m_name; }
1557+ void set_name (const char *new_name) final override {
1558+ m_name = m_ctxt->new_string (new_name);
1559+ }
15561560
15571561private:
15581562 string * make_debug_string () final override { return m_name; }
@@ -1823,6 +1827,9 @@ class global : public lvalue
18231827 void set_rvalue_init (rvalue *val) { m_rvalue_init = val; }
18241828
18251829 string * get_name () const final override { return m_name; }
1830+ void set_name (const char *new_name) final override {
1831+ m_name = m_ctxt->new_string (new_name);
1832+ }
18261833
18271834private:
18281835 string * make_debug_string () final override { return m_name; }
@@ -2267,6 +2274,10 @@ class array_access : public lvalue
22672274
22682275 void replay_into (replayer *r) final override ;
22692276
2277+ void set_name (const char *new_name) final override {
2278+ m_ctxt->add_error (NULL , " cannot change the name of type `array_access`" );
2279+ }
2280+
22702281 void visit_children (rvalue_visitor *v) final override ;
22712282
22722283private:
@@ -2328,6 +2339,10 @@ class vector_access : public lvalue
23282339
23292340 void visit_children (rvalue_visitor *v) final override ;
23302341
2342+ void set_name (const char *new_name) final override {
2343+ m_ctxt->add_error (NULL , " cannot change the name of type `vector_access`" );
2344+ }
2345+
23312346private:
23322347 string * make_debug_string () final override ;
23332348 void write_reproducer (reproducer &r) final override ;
@@ -2357,6 +2372,11 @@ class access_field_of_lvalue : public lvalue
23572372
23582373 void visit_children (rvalue_visitor *v) final override ;
23592374
2375+ void set_name (const char *new_name) final override {
2376+ m_ctxt->add_error (
2377+ NULL , " cannot change the name of type `access_field_of_lvalue`" );
2378+ }
2379+
23602380private:
23612381 string * make_debug_string () final override ;
23622382 void write_reproducer (reproducer &r) final override ;
@@ -2415,6 +2435,11 @@ class dereference_field_rvalue : public lvalue
24152435
24162436 void visit_children (rvalue_visitor *v) final override ;
24172437
2438+ void set_name (const char *new_name) final override {
2439+ m_ctxt->add_error (
2440+ NULL , " cannot change the name of type `dereference_field_rvalue`" );
2441+ }
2442+
24182443private:
24192444 string * make_debug_string () final override ;
24202445 void write_reproducer (reproducer &r) final override ;
@@ -2441,6 +2466,11 @@ class dereference_rvalue : public lvalue
24412466
24422467 void visit_children (rvalue_visitor *v) final override ;
24432468
2469+ void set_name (const char *new_name) final override {
2470+ m_ctxt->add_error (
2471+ NULL , " cannot change the name of type `dereference_rvalue`" );
2472+ }
2473+
24442474private:
24452475 string * make_debug_string () final override ;
24462476 void write_reproducer (reproducer &r) final override ;
@@ -2524,6 +2554,11 @@ class local : public lvalue
25242554
25252555 void write_to_dump (dump &d) final override ;
25262556
2557+ string * get_name () const final override { return m_name; }
2558+ void set_name (const char *new_name) final override {
2559+ m_name = m_ctxt->new_string (new_name);
2560+ }
2561+
25272562private:
25282563 string * make_debug_string () final override {
25292564 if (m_name)
0 commit comments