[PATCH] D101122: introduce flag -fsanitize-address-detect-stack-use-after-return-mode. No functional change.

Dan Liew via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 28 14:37:11 PDT 2021


delcypher added inline comments.


================
Comment at: clang/include/clang/Basic/CodeGenOptions.def:225-228
+ENUM_CODEGENOPT(SanitizeAddressDetectStackUseAfterReturnMode,
+                llvm::AsanDetectStackUseAfterReturnMode, 2,
+                llvm::AsanDetectStackUseAfterReturnMode::Runtime
+                ) ///< Set detection mode for stack-use-after-return.
----------------
vitalybuka wrote:
> delcypher wrote:
> > vitalybuka wrote:
> > > vitalybuka wrote:
> > > > Mode->Kind to be consistent with the file
> > > I believe for consistency we need:
> > > 1. Var name (SanitizeAddressDetectStackUseAfterReturn) no Mode/Kind suffix
> > > 2. Enum type AsanDetectStackUseAfterReturnKind uses "kind"
> > > 3. Actual flag includes no "kind" -fsanitize-address-detect-stack-use-after-return=
> > > 
> > > BTW. @delcypher  -fsanitize-address-destructor-kind was not consistent with the rest of file, but I am not sure it's worth of fixing now.
> > > 
> > > 
> > @vitalybuka It's not too late to fix this because the `-fsanitize-address-destructor-kind=` flag hasn't been adopted yet AFAIK.
> > 
> > Am I right in understanding that what I landed doesn't match points 1 and 3 above? If you can confirm that's what you'd like to be changed I can put up some patches to fix this.
> Correct
> I'd expect 
> 
> ```
> ENUM_CODEGENOPT(SanitizeAddressDtor, llvm::AsanDtorKind, 2,
>                 llvm::AsanDtorKind::Global)
> ```
> 
> and 
> 
> ```
> def sanitize_address_destructor_EQ
>     : Joined<["-"], "fsanitize-address-destructor=">,
>       MetaVarName<"<kind>">,
>       Flags<[CC1Option]>,
>       HelpText<"Set destructor type used in ASan instrumentation">,
>       Group<f_clang_Group>,
>       Values<"none,global">,
>       NormalizedValuesScope<"llvm::AsanDtorKind">,
>       NormalizedValues<["None", "Global"]>,
>       MarshallingInfoEnum<CodeGenOpts<"SanitizeAddressDtor">, "Global">;
> ```
> 
> And one more thing, probably not very important, and matter of personal preferences.
> Maybe we don't need MetaVarName<"<kind>"> for both of these flags.
> Without MetaVarName documentation is going to be -fsanitize-address-destructor=<arg> 
> MetaVarName just lets use to replace <arg> with more common and specific <file>, <dir>.. etc.
> To me <kind> is almost generic as <arg>, so why not to stick to default.
@vitalybuka I put up the following patches for review

https://reviews.llvm.org/D101490
https://reviews.llvm.org/D101491


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D101122/new/

https://reviews.llvm.org/D101122



More information about the cfe-commits mailing list