On Apr 4, 2011, at 1:56 PM, Ted Kremenek wrote:

> Author: kremenek
> Date: Mon Apr  4 15:56:00 2011
> New Revision: 128843
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=128843&view=rev
> Log:
> -Wuninitialized: use "self-init" warning when issue uninitialized values 
> warnings from the dataflow analysis that include within the initializer of a 
> variable.

Ok, but:

>         const bool isAlwaysUninit = vi->second;
>         if (const DeclRefExpr *dr = dyn_cast<DeclRefExpr>(vi->first)) {
>           S.Diag(dr->getLocStart(),
> +                 isAlwaysUninit ?
> +                  (isSelfInit(S.Context, vd, dr) 
> +                    ? diag::warn_uninit_self_reference_in_init
> +                    : diag::warn_uninit_var)
> +                  : diag::warn_maybe_uninit_var)
>             << vd->getDeclName() << dr->getSourceRange();          


This is really ugly.  Please do something like:

  unsigned DiagID = diag::warn_uninit_var;
  // comment here.
  if (...)
    DiagID = diag::warn_uninit_self_reference_in_init;
  S.Diag(.. , DiagID, ...)

Thanks,

-Chris

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to