From: Hans Wennborg Date: Sat, 31 May 2014 04:05:57 +0000 (+0000) Subject: AST Dump: print the Inherited flag on attributes X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a217888b66795e432b938ba7686dd0155d41d335;p=clang AST Dump: print the Inherited flag on attributes Also move the attribute-specific dumping to after dumping this and the Implicit flag. Differential Revision: http://reviews.llvm.org/D3971 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209965 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AST/ASTDumper.cpp b/lib/AST/ASTDumper.cpp index 14e0e0160d..548e042d2c 100644 --- a/lib/AST/ASTDumper.cpp +++ b/lib/AST/ASTDumper.cpp @@ -629,9 +629,11 @@ void ASTDumper::dumpAttr(const Attr *A) { } dumpPointer(A); dumpSourceRange(A->getRange()); -#include "clang/AST/AttrDump.inc" + if (A->isInherited()) + OS << " Inherited"; if (A->isImplicit()) OS << " Implicit"; +#include "clang/AST/AttrDump.inc" } static void dumpPreviousDeclImpl(raw_ostream &OS, ...) {} diff --git a/test/Misc/ast-dump-attr.cpp b/test/Misc/ast-dump-attr.cpp index dde7ba3e09..1aa6adf79b 100644 --- a/test/Misc/ast-dump-attr.cpp +++ b/test/Misc/ast-dump-attr.cpp @@ -108,7 +108,13 @@ namespace Test { extern "C" int printf(const char *format, ...); // CHECK: FunctionDecl{{.*}}printf // CHECK-NEXT: ParmVarDecl{{.*}}format{{.*}}'const char *' -// CHECK-NEXT: FormatAttr{{.*}}printf 1 2 Implicit +// CHECK-NEXT: FormatAttr{{.*}}Implicit printf 1 2 + +alignas(8) extern int x; +extern int x; +// CHECK: VarDecl{{.*}} x 'int' +// CHECK: VarDecl{{.*}} x 'int' +// CHECK-NEXT: AlignedAttr{{.*}} Inherited } int __attribute__((cdecl)) TestOne(void), TestTwo(void);