Hi Hans, Thanks. Sorry for the trouble. I'll look into it.
Joel On Tue, May 15, 2018 at 6:23 AM, Hans Wennborg <h...@chromium.org> wrote: > This broke the ast-print-record-decl.c test on Windows, see for > example http://lab.llvm.org:8011/builders/clang-with-thin-lto- > windows/builds/9066 > > One way to reproduce the failure on Linux is to pass a Windows triple > to this ast-print command: > > --- a/test/Misc/ast-print-record-decl.c > +++ b/test/Misc/ast-print-record-decl.c > @@ -54,7 +54,7 @@ > // RUN: -DKW=struct -DBASES=' : B' -o - -xc++ %s \ > // RUN: | FileCheck --check-prefixes=CHECK,LLVM %s > // > -// RUN: %clang_cc1 -verify -ast-print -DKW=struct -DBASES=' : B' -xc++ > %s \ > +// RUN: %clang_cc1 -verify -triple i686-pc-win32 -ast-print > -DKW=struct -DBASES=' : B' -xc++ %s \ > // RUN: > %t.cpp > // RUN: FileCheck --check-prefixes=CHECK,PRINT,PRINT-CXX -DKW=struct \ > // RUN: -DBASES=' : B' %s --input-file %t.cpp > > What's happening is that on Windows, "__single_inheritance(1)" is > printed before T1. But if I change the test to allow that in the > output, it still doesn't pass as Clang doesn't seem able to parse it. > > I've worked around the problem by adding a Linux triple here in > r332335, but someone should probably look into it properly. > > Thanks, > Hans > > On Tue, May 15, 2018 at 2:44 AM, Joel E. Denny via cfe-commits > <cfe-commits@lists.llvm.org> wrote: > > Author: jdenny > > Date: Mon May 14 17:44:14 2018 > > New Revision: 332314 > > > > URL: http://llvm.org/viewvc/llvm-project?rev=332314&view=rev > > Log: > > [AST] Fix printing tag decl groups in decl contexts > > > > For example, given: > > > > struct T1 { > > struct T2 *p0; > > }; > > > > -ast-print produced: > > > > struct T1 { > > struct T2; > > struct T2 *p0; > > }; > > > > Compiling that produces a warning that the first struct T2 declaration > > does not declare anything. > > > > Details: > > > > A tag decl group is one or more decls that share a type specifier that > > is a tag decl (that is, a struct/union/class/enum decl). Within > > functions, the parser builds such a tag decl group as part of a > > DeclStmt. However, in decl contexts, such as file scope or a member > > list, the parser does not group together the members of a tag decl > > group. Previously, detection of tag decl groups during printing was > > implemented but only if the tag decl was unnamed. Otherwise, as in > > the above example, the members of the group did not print together and > > so sometimes introduced warnings. > > > > This patch extends detection of tag decl groups in decl contexts to > > any tag decl that is recorded in the AST as not free-standing. > > > > Reviewed by: rsmith > > > > Differential Revision: https://reviews.llvm.org/D45465 > > > > Modified: > > cfe/trunk/lib/AST/DeclPrinter.cpp > > cfe/trunk/test/Misc/ast-print-enum-decl.c > > cfe/trunk/test/Misc/ast-print-record-decl.c > > cfe/trunk/test/Sema/ast-print.c > > cfe/trunk/test/SemaCXX/ast-print.cpp >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits