Thanks for replying! I've dumped the lto stream-out file and noticed that constructors are streamed to function_body. Also, I noticed that, the binany which is generated when streaming constructors to function_body has bigger size than the one's streaming to decls.
So, I wonder why we need to stream constructors to other section. Best regards! > -----Original Message----- > From: Richard Biener [mailto:richard.guent...@gmail.com] > Sent: 2020年3月26日 20:27 > To: lizekun (A) <lizek...@huawei.com> > Cc: gcc@gcc.gnu.org > Subject: Re: Question on lto-stream-out > > On Thu, Mar 26, 2020 at 12:01 PM lizekun (A) <lizek...@huawei.com> wrote: > > > > Hi, > > I have a question on function "get_symbol_initial_value" in lto-stream- > out.c. > > > > When the initial value of symbol is constructor, it will be replaced by an > error_mark. > > What's the benefit of donging this? In some cases, it increases the size of > binary. > > constructors are streamed into a separate section, the above just "marks" > the variable that there is one available. > > > I would be grateful if anyone could help. > > > > Best regulars