rnk accepted this revision.
rnk added inline comments.
This revision is now accepted and ready to land.


================
Comment at: lib/CodeGen/CGException.cpp:134-135
   const llvm::Triple &T = Target.getTriple();
+  if (T.isWindowsMSVCEnvironment())
+    return EHPersonality::MSVC_CxxFrameHandler3;
+
----------------
smeenai wrote:
> rnk wrote:
> > I guess previously we carefully arranged to go to whatever the regular objc 
> > personality would be, but we're not doing that now with funclet windows eh.
> > Maybe we could drastically simplify this by checking for an msvc 
> > environment and seh before checking each language?
> I gave this a shot. EHPersonality::get already has code to make SEH functions 
> always get the SEH personality (line 223 below), so I added another condition 
> below to make an MSVC triple always get the MSVC personality, and then 
> removed all those conditionals from the individual get*Personality functions. 
> Unfortunately, there's also code below (in SimplifyPersonality) that calls 
> getCXXPersonality directly, so we still need to leave the MSVC check in 
> there, and having the check in there but not any of the other get*Personality 
> functions seems really ugly. The other option is to adjust 
> SimplifyPersonality instead, which ends up looking like P8086; do you think 
> that's worth it? Or did you mean something else entirely?
That's what I meant, but I see how it ends up inconsistent. Let's go with this.


Repository:
  rC Clang

https://reviews.llvm.org/D47862



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to