r301567 - clang-cl: Alias /d1reportAllClassLayout to -fdump-record-layouts (PR32826)

Nico Weber via cfe-commits cfe-commits at lists.llvm.org
Mon Jul 1 12:21:54 PDT 2019


Turns out this doesn't actually work: -fdump-records-layout is a cc1
option, not a clang driver option. The correct td entry would be

def _SLASH_d1reportAllClassLayout : CLFlag<"d1reportAllClassLayout">,
  HelpText<"Dump record layout information">,
  Alias<Xclang>, AliasArgs<["-fdump-record-layouts"]>;

But if nobody ever noticed since this was added, maybe we should just
remove it again? It doesn't seem like anyone ever used it. (Also, the
current fdump-record-layouts output with ast layout, irgen layout, and
cgrecordlayout looks very very wordy – I remember the output being more
readable at some point.)


Why does the test pass if this doesn't work? Because clang prints "argument
unused during compilation: '-fdump-record-layouts'" which happens to match
the lit check line, which only asks for -fdump-record-layouts


I tried fixing the test, but it's surprisingly tricky: Adding `/c /WX`
makes clang emit "error: argument unused..." instead of just "warning:",
but -### apparently causes clang to not set $? even if it prints an error.
And having a CHECK-NOT for "error:" seems pretty one-off-y. Maybe there
should be some way to make -### still set `$?`? cl-options.c kind of looks
like it expects -### to behave that way.

(I noticed because I'm trying to print unaliased options in diags, so the
diag changed to "argument unused during compilation:
/d1reportAllClassLayout", which made the test fail. I'm happy with any
outcome that makes the d1reportAllClassLayout test behave – either removing
the flag, or making it work and fixing the test to actually check what it's
trying to check.)

On Thu, Apr 27, 2017 at 7:32 PM Hans Wennborg via cfe-commits <
cfe-commits at lists.llvm.org> wrote:

> Author: hans
> Date: Thu Apr 27 12:19:07 2017
> New Revision: 301567
>
> URL: http://llvm.org/viewvc/llvm-project?rev=301567&view=rev
> Log:
> clang-cl: Alias /d1reportAllClassLayout to -fdump-record-layouts (PR32826)
>
> Modified:
>     cfe/trunk/include/clang/Driver/CLCompatOptions.td
>     cfe/trunk/test/Driver/cl-options.c
>
> Modified: cfe/trunk/include/clang/Driver/CLCompatOptions.td
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/CLCompatOptions.td?rev=301567&r1=301566&r2=301567&view=diff
>
> ==============================================================================
> --- cfe/trunk/include/clang/Driver/CLCompatOptions.td (original)
> +++ cfe/trunk/include/clang/Driver/CLCompatOptions.td Thu Apr 27 12:19:07
> 2017
> @@ -61,6 +61,8 @@ def _SLASH_Brepro_ : CLFlag<"Brepro-">,
>  def _SLASH_C : CLFlag<"C">,
>    HelpText<"Don't discard comments when preprocessing">, Alias<C>;
>  def _SLASH_c : CLFlag<"c">, HelpText<"Compile only">, Alias<c>;
> +def _SLASH_d1reportAllClassLayout : CLFlag<"d1reportAllClassLayout">,
> +  HelpText<"Dump record layout information">, Alias<fdump_record_layouts>;
>  def _SLASH_D : CLJoinedOrSeparate<"D">, HelpText<"Define macro">,
>    MetaVarName<"<macro[=value]>">, Alias<D>;
>  def _SLASH_E : CLFlag<"E">, HelpText<"Preprocess to stdout">, Alias<E>;
>
> Modified: cfe/trunk/test/Driver/cl-options.c
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/cl-options.c?rev=301567&r1=301566&r2=301567&view=diff
>
> ==============================================================================
> --- cfe/trunk/test/Driver/cl-options.c (original)
> +++ cfe/trunk/test/Driver/cl-options.c Thu Apr 27 12:19:07 2017
> @@ -14,6 +14,9 @@
>  // C_P: "-E"
>  // C_P: "-C"
>
> +// RUN: %clang_cl /d1reportAllClassLayout -### -- %s 2>&1 | FileCheck
> -check-prefix=d1reportAllClassLayout %s
> +// d1reportAllClassLayout: -fdump-record-layouts
> +
>  // RUN: %clang_cl /Dfoo=bar /D bar=baz /DMYDEF#value /DMYDEF2=foo#bar
> /DMYDEF3#a=b /DMYDEF4# \
>  // RUN:    -### -- %s 2>&1 | FileCheck -check-prefix=D %s
>  // D: "-D" "foo=bar"
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190701/4452cef2/attachment.html>


More information about the cfe-commits mailing list