This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/12667] [3.3 regression] max(enum) returns reference to temporary


------- Additional Comments From bangerth at dealii dot org  2003-11-16 17:47 -------
The code in comment #3 is definitely wrong. You call 
  max(E1,E2) 
both E1 and E2 are names that when evaluated yield temporary variables. These 
temporaries are then bound to the constant references in the args to max, and  
you return a reference to a temporary from that function. The lifetime of the temporary 
ends at the end of the call expression, so you get garbage when using the result int 
the call to operator<< 
 
W. 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12667


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]