mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2026-08-27 00:26:02 -04:00
167 lines
5.1 KiB
Text
167 lines
5.1 KiB
Text
|
|
# -*- yaml -*-
|
||
|
|
|
||
|
|
# Copyright (C) 2021-2026 Free Software Foundation, Inc.
|
||
|
|
#
|
||
|
|
# This program is free software; you can redistribute it and/or modify
|
||
|
|
# it under the terms of the GNU General Public License as published by
|
||
|
|
# the Free Software Foundation; either version 3 of the License, or
|
||
|
|
# (at your option) any later version.
|
||
|
|
#
|
||
|
|
# This program is distributed in the hope that it will be useful,
|
||
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
|
# GNU General Public License for more details.
|
||
|
|
#
|
||
|
|
# You should have received a copy of the GNU General Public License
|
||
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
|
|
|
||
|
|
# A clang format style for gdb.
|
||
|
|
|
||
|
|
# ⚠️⚠️⚠️ DO NOT BULK REFORMAT FILES ⚠️⚠️⚠️
|
||
|
|
|
||
|
|
# This style is still in flux and still considered "alpha". Use "git
|
||
|
|
# clang-format" or the like to reformat just the parts your patch
|
||
|
|
# touches -- at most. At some point in the future we will bulk
|
||
|
|
# reformat and at that point we'll send out new instructions.
|
||
|
|
|
||
|
|
# There is currently not a blessed version of clang-format. This was
|
||
|
|
# tried with versions 18-21 with various results.
|
||
|
|
|
||
|
|
# There's a gdb bug open for discussion of the format.
|
||
|
|
#
|
||
|
|
# https://sourceware.org/bugzilla/show_bug.cgi?id=30098
|
||
|
|
#
|
||
|
|
# It also has links to relevant upstream clang-format bugs.
|
||
|
|
|
||
|
|
# Options here are generally in alphabetical order.
|
||
|
|
|
||
|
|
Language: Cpp
|
||
|
|
# BasedOnStyle: GNU
|
||
|
|
AccessModifierOffset: -2
|
||
|
|
AlignAfterOpenBracket: Align
|
||
|
|
AlignConsecutiveAssignments: false
|
||
|
|
AlignConsecutiveDeclarations: false
|
||
|
|
AlignConsecutiveMacros: false
|
||
|
|
AlignEscapedNewlines: Left
|
||
|
|
AlignOperands: true
|
||
|
|
AlignTrailingComments: true
|
||
|
|
AllowAllArgumentsOnNextLine: false
|
||
|
|
AllowAllParametersOfDeclarationOnNextLine: false
|
||
|
|
AllowShortBlocksOnASingleLine: false
|
||
|
|
AllowShortCaseLabelsOnASingleLine: false
|
||
|
|
AllowShortEnumsOnASingleLine: false
|
||
|
|
AllowShortFunctionsOnASingleLine: None
|
||
|
|
AllowShortIfStatementsOnASingleLine: Never
|
||
|
|
AllowShortLambdasOnASingleLine: All
|
||
|
|
AllowShortLoopsOnASingleLine: false
|
||
|
|
AlwaysBreakAfterReturnType: TopLevelDefinitions
|
||
|
|
AlwaysBreakBeforeMultilineStrings: false
|
||
|
|
AlwaysBreakTemplateDeclarations: Yes
|
||
|
|
#
|
||
|
|
# Run:
|
||
|
|
# git grep 'define ATTRIBUTE_' -- include gdb* | \
|
||
|
|
# sed -e's/^.*\(ATTRIBUTE_[A-Z0-9_]*\).*$/\1/' | \
|
||
|
|
# sort -u | \
|
||
|
|
# sed -e "s/^\(.*\)$/ '\1',/"
|
||
|
|
AttributeMacros: [
|
||
|
|
'ATTRIBUTE_ALIGNED_ALIGNOF',
|
||
|
|
'ATTRIBUTE_COLD',
|
||
|
|
'ATTRIBUTE_FORMAT_PRINTF_STANDARD',
|
||
|
|
'ATTRIBUTE_FPTR_PRINTF',
|
||
|
|
'ATTRIBUTE_GCC_STRUCT',
|
||
|
|
'ATTRIBUTE_HOT',
|
||
|
|
'ATTRIBUTE_MALLOC',
|
||
|
|
'ATTRIBUTE_NOCLONE',
|
||
|
|
'ATTRIBUTE_NONNULL',
|
||
|
|
'ATTRIBUTE_NONSTRING',
|
||
|
|
'ATTRIBUTE_NORETURN',
|
||
|
|
'ATTRIBUTE_NO_SANITIZE_UNDEFINED',
|
||
|
|
'ATTRIBUTE_NULL_PRINTF',
|
||
|
|
'ATTRIBUTE_PACKED',
|
||
|
|
'ATTRIBUTE_PRINTF',
|
||
|
|
'ATTRIBUTE_PURE',
|
||
|
|
'ATTRIBUTE_RESULT_SIZE_1',
|
||
|
|
'ATTRIBUTE_RESULT_SIZE_1_2',
|
||
|
|
'ATTRIBUTE_RESULT_SIZE_2',
|
||
|
|
'ATTRIBUTE_RETURNS_NONNULL',
|
||
|
|
'ATTRIBUTE_SENTINEL',
|
||
|
|
'ATTRIBUTE_UNUSED',
|
||
|
|
'ATTRIBUTE_UNUSED_LABEL',
|
||
|
|
'ATTRIBUTE_UNUSED_RESULT',
|
||
|
|
'ATTRIBUTE_USED',
|
||
|
|
'ATTRIBUTE_VISIBILITY',
|
||
|
|
'ATTRIBUTE_WARN_UNUSED_RESULT',
|
||
|
|
]
|
||
|
|
BinPackArguments: true
|
||
|
|
BinPackParameters: true
|
||
|
|
# Because BreakBeforeBraces = GNU, we don't need BraceWrapping.
|
||
|
|
BreakBeforeBinaryOperators: All
|
||
|
|
BreakBeforeBraces: GNU
|
||
|
|
BreakBeforeTernaryOperators: true
|
||
|
|
BreakConstructorInitializers: BeforeColon
|
||
|
|
BreakInheritanceList: BeforeColon
|
||
|
|
BreakStringLiterals: true
|
||
|
|
ColumnLimit: 79
|
||
|
|
CompactNamespaces: false
|
||
|
|
ConstructorInitializerIndentWidth: 2
|
||
|
|
ContinuationIndentWidth: 2
|
||
|
|
Cpp11BracedListStyle: false
|
||
|
|
DerivePointerAlignment: false
|
||
|
|
DisableFormat: false
|
||
|
|
# The docs say not to use this.
|
||
|
|
# ExperimentalAutoDetectBinPacking: false
|
||
|
|
FixNamespaceComments: true
|
||
|
|
IncludeBlocks: Preserve
|
||
|
|
IndentCaseLabels: false
|
||
|
|
# This next setting is incorrect but it's a clang-format issue.
|
||
|
|
IndentGotoLabels: true
|
||
|
|
IndentPPDirectives: None
|
||
|
|
IndentWidth: 2
|
||
|
|
IndentWrappedFunctionNames: false
|
||
|
|
KeepEmptyLinesAtTheStartOfBlocks: false
|
||
|
|
LineEnding: LF
|
||
|
|
# MacroBlockBegin: ''
|
||
|
|
# MacroBlockEnd: ''
|
||
|
|
MaxEmptyLinesToKeep: 1
|
||
|
|
NamespaceIndentation: None
|
||
|
|
# NamespaceMacros
|
||
|
|
PackConstructorInitializers: Never
|
||
|
|
PenaltyBreakAssignment: 50
|
||
|
|
PenaltyBreakBeforeFirstCallParameter: 100
|
||
|
|
# clang 20 setting:
|
||
|
|
# PenaltyBreakBeforeMemberAccess: 50
|
||
|
|
# PenaltyBreakComment
|
||
|
|
# PenaltyBreakFirstLessLess
|
||
|
|
PenaltyBreakOpenParenthesis: 100
|
||
|
|
# PenaltyBreakString
|
||
|
|
# PenaltyBreakTemplateDeclaration
|
||
|
|
# PenaltyExcessCharacter
|
||
|
|
# PenaltyReturnTypeOnItsOwnLine
|
||
|
|
PointerAlignment: Right
|
||
|
|
# RawStringFormats: [ I don't think we need this ]
|
||
|
|
# Should be IndentOnly but that requires clang 20.
|
||
|
|
ReflowComments: false
|
||
|
|
# FIXME - enable
|
||
|
|
SortIncludes: Never
|
||
|
|
SortUsingDeclarations: true
|
||
|
|
SpaceAfterCStyleCast: true
|
||
|
|
SpaceAfterLogicalNot: false
|
||
|
|
SpaceAfterTemplateKeyword: false
|
||
|
|
SpaceBeforeAssignmentOperators: true
|
||
|
|
SpaceBeforeCpp11BracedList: true
|
||
|
|
SpaceBeforeCtorInitializerColon: true
|
||
|
|
SpaceBeforeInheritanceColon: true
|
||
|
|
SpaceBeforeParens: Always
|
||
|
|
SpaceBeforeRangeBasedForLoopColon: true
|
||
|
|
SpaceBeforeSquareBrackets: false
|
||
|
|
SpaceInEmptyBlock: false
|
||
|
|
SpacesBeforeTrailingComments: 1
|
||
|
|
SpacesInAngles: false
|
||
|
|
SpacesInContainerLiterals: true
|
||
|
|
SpacesInParens: Never
|
||
|
|
SpacesInSquareBrackets: false
|
||
|
|
Standard: c++17
|
||
|
|
TabWidth: 8
|
||
|
|
TypenameMacros: [ 'ENUM_BITFIELD' ]
|
||
|
|
UseTab: ForContinuationAndIndentation
|