http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54328
--- Comment #2 from yaoyuan1216 at gmail dot com 2012-08-20 07:38:18 UTC --- (In reply to comment #1) > 'a' isn't a pointer, it's an array, so the closure has a copy of the array and > a[0] = 2 doesn't alter the closure's copy. Thanks for your reply. You are absolutely right and I'm glad that it is my mistake instead of gcc.