martong added inline comments.

================
Comment at: clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp:747
+                          : *FilePtrTy)
+                : None;
+
----------------
balazske wrote:
> martong wrote:
> > balazske wrote:
> > > The `Optional<QualType>` can be left out from the right side expressions 
> > > (in the `?` operator part). (A `QualType` should be assignable to 
> > > `Optional<QualType>`.)
> > No that cannot be left out. Implicit conversion does not play when trying 
> > to determine the common type for the 2nd and 3rd argument of the ternary 
> > op. 
> > https://stackoverflow.com/questions/32251419/c-ternary-operator-conditional-operator-and-its-implicit-type-conversion-r
> > So, removing the explicit type I get a compile error.
> Still I do not like that code. Probably this is better then:
> ```
>   Optional<QualType> FilePtrTy, FilePtrRestrictTy;
>   if (FileTy) {
>     FilePtrTy = ACtx.getPointerType(*FileTy);
>     FilePtrRestrictTy = ACtx.getLangOpts().C99
>                             ? ACtx.getRestrictType(*FilePtrTy) // FILE 
> *restrict
>                             : *FilePtrTy)
>   }
> ```
Ok, I added the `if`.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D80016



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

Reply via email to