Skip to content

Commit 8c16323

Browse files
committed
[OpenACC/NFC] Make 'trailing objects' use private inheritence.
I noticed this while working on something else, these are supposed to be privately inherited.
1 parent 8402a0f commit 8c16323

File tree

2 files changed

+53
-27
lines changed

2 files changed

+53
-27
lines changed

clang/include/clang/AST/OpenACCClause.h

+38-19
Original file line numberDiff line numberDiff line change
@@ -191,8 +191,9 @@ using DeviceTypeArgument = std::pair<IdentifierInfo *, SourceLocation>;
191191
/// an identifier. The 'asterisk' means 'the rest'.
192192
class OpenACCDeviceTypeClause final
193193
: public OpenACCClauseWithParams,
194-
public llvm::TrailingObjects<OpenACCDeviceTypeClause,
194+
private llvm::TrailingObjects<OpenACCDeviceTypeClause,
195195
DeviceTypeArgument> {
196+
friend TrailingObjects;
196197
// Data stored in trailing objects as IdentifierInfo* /SourceLocation pairs. A
197198
// nullptr IdentifierInfo* represents an asterisk.
198199
unsigned NumArchs;
@@ -377,7 +378,8 @@ class OpenACCClauseWithExprs : public OpenACCClauseWithParams {
377378
// Represents the 'devnum' and expressions lists for the 'wait' clause.
378379
class OpenACCWaitClause final
379380
: public OpenACCClauseWithExprs,
380-
public llvm::TrailingObjects<OpenACCWaitClause, Expr *> {
381+
private llvm::TrailingObjects<OpenACCWaitClause, Expr *> {
382+
friend TrailingObjects;
381383
SourceLocation QueuesLoc;
382384
OpenACCWaitClause(SourceLocation BeginLoc, SourceLocation LParenLoc,
383385
Expr *DevNumExpr, SourceLocation QueuesLoc,
@@ -419,7 +421,8 @@ class OpenACCWaitClause final
419421

420422
class OpenACCNumGangsClause final
421423
: public OpenACCClauseWithExprs,
422-
public llvm::TrailingObjects<OpenACCNumGangsClause, Expr *> {
424+
private llvm::TrailingObjects<OpenACCNumGangsClause, Expr *> {
425+
friend TrailingObjects;
423426

424427
OpenACCNumGangsClause(SourceLocation BeginLoc, SourceLocation LParenLoc,
425428
ArrayRef<Expr *> IntExprs, SourceLocation EndLoc)
@@ -449,7 +452,8 @@ class OpenACCNumGangsClause final
449452

450453
class OpenACCTileClause final
451454
: public OpenACCClauseWithExprs,
452-
public llvm::TrailingObjects<OpenACCTileClause, Expr *> {
455+
private llvm::TrailingObjects<OpenACCTileClause, Expr *> {
456+
friend TrailingObjects;
453457
OpenACCTileClause(SourceLocation BeginLoc, SourceLocation LParenLoc,
454458
ArrayRef<Expr *> SizeExprs, SourceLocation EndLoc)
455459
: OpenACCClauseWithExprs(OpenACCClauseKind::Tile, BeginLoc, LParenLoc,
@@ -503,7 +507,8 @@ class OpenACCClauseWithSingleIntExpr : public OpenACCClauseWithExprs {
503507

504508
class OpenACCGangClause final
505509
: public OpenACCClauseWithExprs,
506-
public llvm::TrailingObjects<OpenACCGangClause, Expr *, OpenACCGangKind> {
510+
private llvm::TrailingObjects<OpenACCGangClause, Expr *, OpenACCGangKind> {
511+
friend TrailingObjects;
507512
protected:
508513
OpenACCGangClause(SourceLocation BeginLoc, SourceLocation LParenLoc,
509514
ArrayRef<OpenACCGangKind> GangKinds,
@@ -658,7 +663,8 @@ class OpenACCClauseWithVarList : public OpenACCClauseWithExprs {
658663

659664
class OpenACCPrivateClause final
660665
: public OpenACCClauseWithVarList,
661-
public llvm::TrailingObjects<OpenACCPrivateClause, Expr *> {
666+
private llvm::TrailingObjects<OpenACCPrivateClause, Expr *> {
667+
friend TrailingObjects;
662668

663669
OpenACCPrivateClause(SourceLocation BeginLoc, SourceLocation LParenLoc,
664670
ArrayRef<Expr *> VarList, SourceLocation EndLoc)
@@ -680,7 +686,8 @@ class OpenACCPrivateClause final
680686

681687
class OpenACCFirstPrivateClause final
682688
: public OpenACCClauseWithVarList,
683-
public llvm::TrailingObjects<OpenACCFirstPrivateClause, Expr *> {
689+
private llvm::TrailingObjects<OpenACCFirstPrivateClause, Expr *> {
690+
friend TrailingObjects;
684691

685692
OpenACCFirstPrivateClause(SourceLocation BeginLoc, SourceLocation LParenLoc,
686693
ArrayRef<Expr *> VarList, SourceLocation EndLoc)
@@ -702,7 +709,8 @@ class OpenACCFirstPrivateClause final
702709

703710
class OpenACCDevicePtrClause final
704711
: public OpenACCClauseWithVarList,
705-
public llvm::TrailingObjects<OpenACCDevicePtrClause, Expr *> {
712+
private llvm::TrailingObjects<OpenACCDevicePtrClause, Expr *> {
713+
friend TrailingObjects;
706714

707715
OpenACCDevicePtrClause(SourceLocation BeginLoc, SourceLocation LParenLoc,
708716
ArrayRef<Expr *> VarList, SourceLocation EndLoc)
@@ -724,7 +732,8 @@ class OpenACCDevicePtrClause final
724732

725733
class OpenACCAttachClause final
726734
: public OpenACCClauseWithVarList,
727-
public llvm::TrailingObjects<OpenACCAttachClause, Expr *> {
735+
private llvm::TrailingObjects<OpenACCAttachClause, Expr *> {
736+
friend TrailingObjects;
728737

729738
OpenACCAttachClause(SourceLocation BeginLoc, SourceLocation LParenLoc,
730739
ArrayRef<Expr *> VarList, SourceLocation EndLoc)
@@ -746,7 +755,8 @@ class OpenACCAttachClause final
746755

747756
class OpenACCDetachClause final
748757
: public OpenACCClauseWithVarList,
749-
public llvm::TrailingObjects<OpenACCDetachClause, Expr *> {
758+
private llvm::TrailingObjects<OpenACCDetachClause, Expr *> {
759+
friend TrailingObjects;
750760

751761
OpenACCDetachClause(SourceLocation BeginLoc, SourceLocation LParenLoc,
752762
ArrayRef<Expr *> VarList, SourceLocation EndLoc)
@@ -768,7 +778,8 @@ class OpenACCDetachClause final
768778

769779
class OpenACCDeleteClause final
770780
: public OpenACCClauseWithVarList,
771-
public llvm::TrailingObjects<OpenACCDeleteClause, Expr *> {
781+
private llvm::TrailingObjects<OpenACCDeleteClause, Expr *> {
782+
friend TrailingObjects;
772783

773784
OpenACCDeleteClause(SourceLocation BeginLoc, SourceLocation LParenLoc,
774785
ArrayRef<Expr *> VarList, SourceLocation EndLoc)
@@ -790,7 +801,8 @@ class OpenACCDeleteClause final
790801

791802
class OpenACCUseDeviceClause final
792803
: public OpenACCClauseWithVarList,
793-
public llvm::TrailingObjects<OpenACCUseDeviceClause, Expr *> {
804+
private llvm::TrailingObjects<OpenACCUseDeviceClause, Expr *> {
805+
friend TrailingObjects;
794806

795807
OpenACCUseDeviceClause(SourceLocation BeginLoc, SourceLocation LParenLoc,
796808
ArrayRef<Expr *> VarList, SourceLocation EndLoc)
@@ -812,7 +824,8 @@ class OpenACCUseDeviceClause final
812824

813825
class OpenACCNoCreateClause final
814826
: public OpenACCClauseWithVarList,
815-
public llvm::TrailingObjects<OpenACCNoCreateClause, Expr *> {
827+
private llvm::TrailingObjects<OpenACCNoCreateClause, Expr *> {
828+
friend TrailingObjects;
816829

817830
OpenACCNoCreateClause(SourceLocation BeginLoc, SourceLocation LParenLoc,
818831
ArrayRef<Expr *> VarList, SourceLocation EndLoc)
@@ -834,7 +847,8 @@ class OpenACCNoCreateClause final
834847

835848
class OpenACCPresentClause final
836849
: public OpenACCClauseWithVarList,
837-
public llvm::TrailingObjects<OpenACCPresentClause, Expr *> {
850+
private llvm::TrailingObjects<OpenACCPresentClause, Expr *> {
851+
friend TrailingObjects;
838852

839853
OpenACCPresentClause(SourceLocation BeginLoc, SourceLocation LParenLoc,
840854
ArrayRef<Expr *> VarList, SourceLocation EndLoc)
@@ -856,7 +870,8 @@ class OpenACCPresentClause final
856870

857871
class OpenACCCopyClause final
858872
: public OpenACCClauseWithVarList,
859-
public llvm::TrailingObjects<OpenACCCopyClause, Expr *> {
873+
private llvm::TrailingObjects<OpenACCCopyClause, Expr *> {
874+
friend TrailingObjects;
860875

861876
OpenACCCopyClause(OpenACCClauseKind Spelling, SourceLocation BeginLoc,
862877
SourceLocation LParenLoc, ArrayRef<Expr *> VarList,
@@ -885,7 +900,8 @@ class OpenACCCopyClause final
885900

886901
class OpenACCCopyInClause final
887902
: public OpenACCClauseWithVarList,
888-
public llvm::TrailingObjects<OpenACCCopyInClause, Expr *> {
903+
private llvm::TrailingObjects<OpenACCCopyInClause, Expr *> {
904+
friend TrailingObjects;
889905
bool IsReadOnly;
890906

891907
OpenACCCopyInClause(OpenACCClauseKind Spelling, SourceLocation BeginLoc,
@@ -917,7 +933,8 @@ class OpenACCCopyInClause final
917933

918934
class OpenACCCopyOutClause final
919935
: public OpenACCClauseWithVarList,
920-
public llvm::TrailingObjects<OpenACCCopyOutClause, Expr *> {
936+
private llvm::TrailingObjects<OpenACCCopyOutClause, Expr *> {
937+
friend TrailingObjects;
921938
bool IsZero;
922939

923940
OpenACCCopyOutClause(OpenACCClauseKind Spelling, SourceLocation BeginLoc,
@@ -949,7 +966,8 @@ class OpenACCCopyOutClause final
949966

950967
class OpenACCCreateClause final
951968
: public OpenACCClauseWithVarList,
952-
public llvm::TrailingObjects<OpenACCCreateClause, Expr *> {
969+
private llvm::TrailingObjects<OpenACCCreateClause, Expr *> {
970+
friend TrailingObjects;
953971
bool IsZero;
954972

955973
OpenACCCreateClause(OpenACCClauseKind Spelling, SourceLocation BeginLoc,
@@ -981,7 +999,8 @@ class OpenACCCreateClause final
981999

9821000
class OpenACCReductionClause final
9831001
: public OpenACCClauseWithVarList,
984-
public llvm::TrailingObjects<OpenACCReductionClause, Expr *> {
1002+
private llvm::TrailingObjects<OpenACCReductionClause, Expr *> {
1003+
friend TrailingObjects;
9851004
OpenACCReductionOperator Op;
9861005

9871006
OpenACCReductionClause(SourceLocation BeginLoc, SourceLocation LParenLoc,

clang/include/clang/AST/StmtOpenACC.h

+15-8
Original file line numberDiff line numberDiff line change
@@ -127,11 +127,12 @@ class OpenACCAssociatedStmtConstruct : public OpenACCConstructStmt {
127127
/// the 'Kind'.
128128
class OpenACCComputeConstruct final
129129
: public OpenACCAssociatedStmtConstruct,
130-
public llvm::TrailingObjects<OpenACCComputeConstruct,
131-
const OpenACCClause *> {
130+
private llvm::TrailingObjects<OpenACCComputeConstruct,
131+
const OpenACCClause *> {
132132
friend class ASTStmtWriter;
133133
friend class ASTStmtReader;
134134
friend class ASTContext;
135+
friend TrailingObjects;
135136
OpenACCComputeConstruct(unsigned NumClauses)
136137
: OpenACCAssociatedStmtConstruct(
137138
OpenACCComputeConstructClass, OpenACCDirectiveKind::Invalid,
@@ -189,7 +190,7 @@ class OpenACCComputeConstruct final
189190
/// Construct.
190191
class OpenACCLoopConstruct final
191192
: public OpenACCAssociatedStmtConstruct,
192-
public llvm::TrailingObjects<OpenACCLoopConstruct,
193+
private llvm::TrailingObjects<OpenACCLoopConstruct,
193194
const OpenACCClause *> {
194195
// The compute/combined construct kind this loop is associated with, or
195196
// invalid if this is an orphaned loop construct.
@@ -202,6 +203,7 @@ class OpenACCLoopConstruct final
202203
friend class OpenACCAssociatedStmtConstruct;
203204
friend class OpenACCCombinedConstruct;
204205
friend class OpenACCComputeConstruct;
206+
friend TrailingObjects;
205207

206208
OpenACCLoopConstruct(unsigned NumClauses);
207209

@@ -245,8 +247,9 @@ class OpenACCLoopConstruct final
245247
// shared with both loop and compute constructs.
246248
class OpenACCCombinedConstruct final
247249
: public OpenACCAssociatedStmtConstruct,
248-
public llvm::TrailingObjects<OpenACCCombinedConstruct,
250+
private llvm::TrailingObjects<OpenACCCombinedConstruct,
249251
const OpenACCClause *> {
252+
friend TrailingObjects;
250253
OpenACCCombinedConstruct(unsigned NumClauses)
251254
: OpenACCAssociatedStmtConstruct(
252255
OpenACCCombinedConstructClass, OpenACCDirectiveKind::Invalid,
@@ -297,8 +300,9 @@ class OpenACCCombinedConstruct final
297300
// and clauses, but is otherwise pretty simple.
298301
class OpenACCDataConstruct final
299302
: public OpenACCAssociatedStmtConstruct,
300-
public llvm::TrailingObjects<OpenACCDataConstruct,
303+
private llvm::TrailingObjects<OpenACCDataConstruct,
301304
const OpenACCClause *> {
305+
friend TrailingObjects;
302306
OpenACCDataConstruct(unsigned NumClauses)
303307
: OpenACCAssociatedStmtConstruct(
304308
OpenACCDataConstructClass, OpenACCDirectiveKind::Data,
@@ -345,8 +349,9 @@ class OpenACCDataConstruct final
345349
// This class represents a 'enter data' construct, which JUST has clauses.
346350
class OpenACCEnterDataConstruct final
347351
: public OpenACCConstructStmt,
348-
public llvm::TrailingObjects<OpenACCEnterDataConstruct,
352+
private llvm::TrailingObjects<OpenACCEnterDataConstruct,
349353
const OpenACCClause *> {
354+
friend TrailingObjects;
350355
OpenACCEnterDataConstruct(unsigned NumClauses)
351356
: OpenACCConstructStmt(OpenACCEnterDataConstructClass,
352357
OpenACCDirectiveKind::EnterData, SourceLocation{},
@@ -382,8 +387,9 @@ class OpenACCEnterDataConstruct final
382387
// This class represents a 'exit data' construct, which JUST has clauses.
383388
class OpenACCExitDataConstruct final
384389
: public OpenACCConstructStmt,
385-
public llvm::TrailingObjects<OpenACCExitDataConstruct,
390+
private llvm::TrailingObjects<OpenACCExitDataConstruct,
386391
const OpenACCClause *> {
392+
friend TrailingObjects;
387393
OpenACCExitDataConstruct(unsigned NumClauses)
388394
: OpenACCConstructStmt(OpenACCExitDataConstructClass,
389395
OpenACCDirectiveKind::ExitData, SourceLocation{},
@@ -420,8 +426,9 @@ class OpenACCExitDataConstruct final
420426
// statement and clauses, but is otherwise pretty simple.
421427
class OpenACCHostDataConstruct final
422428
: public OpenACCAssociatedStmtConstruct,
423-
public llvm::TrailingObjects<OpenACCHostDataConstruct,
429+
private llvm::TrailingObjects<OpenACCHostDataConstruct,
424430
const OpenACCClause *> {
431+
friend TrailingObjects;
425432
OpenACCHostDataConstruct(unsigned NumClauses)
426433
: OpenACCAssociatedStmtConstruct(
427434
OpenACCHostDataConstructClass, OpenACCDirectiveKind::HostData,

0 commit comments

Comments
 (0)