@@ -1500,6 +1500,7 @@ class lvalue : public rvalue
15001500 void set_alignment (unsigned bytes);
15011501 unsigned get_alignment () const { return m_alignment; }
15021502 virtual string * get_name () const { return NULL ; }
1503+ virtual void set_name (const char *new_name) = 0;
15031504
15041505protected:
15051506 string *m_link_section;
@@ -1541,6 +1542,9 @@ class param : public lvalue
15411542 const char *access_as_lvalue (reproducer &r) final override ;
15421543
15431544 string * get_name () const final override { return m_name; }
1545+ void set_name (const char *new_name) final override {
1546+ m_name = m_ctxt->new_string (new_name);
1547+ }
15441548
15451549private:
15461550 string * make_debug_string () final override { return m_name; }
@@ -1811,6 +1815,9 @@ class global : public lvalue
18111815 void set_rvalue_init (rvalue *val) { m_rvalue_init = val; }
18121816
18131817 string * get_name () const final override { return m_name; }
1818+ void set_name (const char *new_name) final override {
1819+ m_name = m_ctxt->new_string (new_name);
1820+ }
18141821
18151822private:
18161823 string * make_debug_string () final override { return m_name; }
@@ -2255,6 +2262,10 @@ class array_access : public lvalue
22552262
22562263 void replay_into (replayer *r) final override ;
22572264
2265+ void set_name (const char *new_name) final override {
2266+ m_ctxt->add_error (NULL , " cannot change the name of type `array_access`" );
2267+ }
2268+
22582269 void visit_children (rvalue_visitor *v) final override ;
22592270
22602271private:
@@ -2316,6 +2327,10 @@ class vector_access : public lvalue
23162327
23172328 void visit_children (rvalue_visitor *v) final override ;
23182329
2330+ void set_name (const char *new_name) final override {
2331+ m_ctxt->add_error (NULL , " cannot change the name of type `vector_access`" );
2332+ }
2333+
23192334private:
23202335 string * make_debug_string () final override ;
23212336 void write_reproducer (reproducer &r) final override ;
@@ -2345,6 +2360,11 @@ class access_field_of_lvalue : public lvalue
23452360
23462361 void visit_children (rvalue_visitor *v) final override ;
23472362
2363+ void set_name (const char *new_name) final override {
2364+ m_ctxt->add_error (
2365+ NULL , " cannot change the name of type `access_field_of_lvalue`" );
2366+ }
2367+
23482368private:
23492369 string * make_debug_string () final override ;
23502370 void write_reproducer (reproducer &r) final override ;
@@ -2403,6 +2423,11 @@ class dereference_field_rvalue : public lvalue
24032423
24042424 void visit_children (rvalue_visitor *v) final override ;
24052425
2426+ void set_name (const char *new_name) final override {
2427+ m_ctxt->add_error (
2428+ NULL , " cannot change the name of type `dereference_field_rvalue`" );
2429+ }
2430+
24062431private:
24072432 string * make_debug_string () final override ;
24082433 void write_reproducer (reproducer &r) final override ;
@@ -2429,6 +2454,11 @@ class dereference_rvalue : public lvalue
24292454
24302455 void visit_children (rvalue_visitor *v) final override ;
24312456
2457+ void set_name (const char *new_name) final override {
2458+ m_ctxt->add_error (
2459+ NULL , " cannot change the name of type `dereference_rvalue`" );
2460+ }
2461+
24322462private:
24332463 string * make_debug_string () final override ;
24342464 void write_reproducer (reproducer &r) final override ;
@@ -2512,6 +2542,11 @@ class local : public lvalue
25122542
25132543 void write_to_dump (dump &d) final override ;
25142544
2545+ string * get_name () const final override { return m_name; }
2546+ void set_name (const char *new_name) final override {
2547+ m_name = m_ctxt->new_string (new_name);
2548+ }
2549+
25152550private:
25162551 string * make_debug_string () final override {
25172552 if (m_name)
0 commit comments