This revision was automatically updated to reflect the committed changes. Closed by commit rGdc3957ec215d: Include leading attributes in DeclStmt's SourceRange (authored by sberg).
Changed prior to commit: https://reviews.llvm.org/D68581?vs=224823&id=225397#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D68581/new/ https://reviews.llvm.org/D68581 Files: clang/lib/Parse/ParseStmt.cpp clang/test/AST/sourceranges.cpp Index: clang/test/AST/sourceranges.cpp =================================================================== --- clang/test/AST/sourceranges.cpp +++ clang/test/AST/sourceranges.cpp @@ -92,6 +92,22 @@ }; // namespace std +// CHECK: NamespaceDecl {{.*}} attributed_decl +namespace attributed_decl { + void f() { + // CHECK: DeclStmt {{.*}} <line:[[@LINE+1]]:5, col:28> + [[maybe_unused]] int i1; + // CHECK: DeclStmt {{.*}} <line:[[@LINE+1]]:5, col:35> + __attribute__((unused)) int i2; + // CHECK: DeclStmt {{.*}} <line:[[@LINE+1]]:5, col:35> + int __attribute__((unused)) i3; + // CHECK: DeclStmt {{.*}} <<built-in>:{{.*}}, {{.*}}:[[@LINE+1]]:40> + __declspec(dllexport) extern int i4; + // CHECK: DeclStmt {{.*}} <line:[[@LINE+1]]:5, col:40> + extern int __declspec(dllexport) i5; + } +} + #if __cplusplus >= 201703L // CHECK-1Z: FunctionDecl {{.*}} construct_with_init_list std::map<int, int> construct_with_init_list() { Index: clang/lib/Parse/ParseStmt.cpp =================================================================== --- clang/lib/Parse/ParseStmt.cpp +++ clang/lib/Parse/ParseStmt.cpp @@ -220,6 +220,8 @@ Decl = ParseDeclaration(DeclaratorContext::BlockContext, DeclEnd, Attrs); } + if (Attrs.Range.getBegin().isValid()) + DeclStart = Attrs.Range.getBegin(); return Actions.ActOnDeclStmt(Decl, DeclStart, DeclEnd); }
Index: clang/test/AST/sourceranges.cpp =================================================================== --- clang/test/AST/sourceranges.cpp +++ clang/test/AST/sourceranges.cpp @@ -92,6 +92,22 @@ }; // namespace std +// CHECK: NamespaceDecl {{.*}} attributed_decl +namespace attributed_decl { + void f() { + // CHECK: DeclStmt {{.*}} <line:[[@LINE+1]]:5, col:28> + [[maybe_unused]] int i1; + // CHECK: DeclStmt {{.*}} <line:[[@LINE+1]]:5, col:35> + __attribute__((unused)) int i2; + // CHECK: DeclStmt {{.*}} <line:[[@LINE+1]]:5, col:35> + int __attribute__((unused)) i3; + // CHECK: DeclStmt {{.*}} <<built-in>:{{.*}}, {{.*}}:[[@LINE+1]]:40> + __declspec(dllexport) extern int i4; + // CHECK: DeclStmt {{.*}} <line:[[@LINE+1]]:5, col:40> + extern int __declspec(dllexport) i5; + } +} + #if __cplusplus >= 201703L // CHECK-1Z: FunctionDecl {{.*}} construct_with_init_list std::map<int, int> construct_with_init_list() { Index: clang/lib/Parse/ParseStmt.cpp =================================================================== --- clang/lib/Parse/ParseStmt.cpp +++ clang/lib/Parse/ParseStmt.cpp @@ -220,6 +220,8 @@ Decl = ParseDeclaration(DeclaratorContext::BlockContext, DeclEnd, Attrs); } + if (Attrs.Range.getBegin().isValid()) + DeclStart = Attrs.Range.getBegin(); return Actions.ActOnDeclStmt(Decl, DeclStart, DeclEnd); }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits