Hi Weiming, This doesn't look like it's actually implementing either the Itanium or ARM C++ ABI rules. Both specify that the guard variable should be in a COMDAT, they just disagree slightly about the details. Cheers. Tim. http://reviews.llvm.org/D6366