A while ago a decision was made on the edk2-devel mailing list that
the `STATIC` EDK2 type should be replaced with the C keyword `static`.
Following further discussion, it was decided to disallow static local
variables to prevent breakage when using GoogleTest.

Update the Coding Specification to match. While here, remove the
outdated section disallowing static functions since they're no longer
a problem.

Bump the revision to 2.4.

Signed-off-by: Rebecca Cran <rebe...@bsdio.com>
---
 5_source_files/54_code_file_structure.md    | 9 ++-------
 5_source_files/56_declarations_and_types.md | 2 +-
 README.md                                   | 3 ++-
 book.json                                   | 2 +-
 4 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/5_source_files/54_code_file_structure.md 
b/5_source_files/54_code_file_structure.md
index 0c4d6a26820c..c286b273fe42 100644
--- a/5_source_files/54_code_file_structure.md
+++ b/5_source_files/54_code_file_structure.md
@@ -269,7 +269,8 @@ other than at the top level of a file as specified by this 
document.
 
 #### 5.4.2.2 Static
 
-An object declared `STATIC` has either file or block scope.
+An object declared `static` has file scope.
+Objects may not be declared 'static' within functions.
 
 ##### 5.4.2.2.1 Do not reuse an object or function identifier with static 
storage duration.
 
@@ -277,9 +278,3 @@ Throughout the set of source files defined within a single 
.inf file, do not
 reuse an identifier with static storage duration. The compiler may not be
 confused by this, but the user may confuse unrelated variables with the same
 name.
-
-##### 5.4.2.2.2 Functions should not be declared STATIC.
-
-Some source-level debuggers are unable to resolve static functions. Until it
-can be verified that no one is dependent upon a debugger with this limitation,
-it is strongly recommended that functions not be declared static.
diff --git a/5_source_files/56_declarations_and_types.md 
b/5_source_files/56_declarations_and_types.md
index ec1803d980e1..77e3ce99c457 100644
--- a/5_source_files/56_declarations_and_types.md
+++ b/5_source_files/56_declarations_and_types.md
@@ -38,7 +38,7 @@
 Any abstract type that is defined must be constructed from other abstract types
 or from common EFI data types.
 
-#### 5.6.1.2 The use of int, unsigned, char, void, static, long is a violation 
of the coding convention.
+#### 5.6.1.2 The use of int, unsigned, char, void, long is a violation of the 
coding convention.
 
 The corresponding EFI types must be used instead.
 
diff --git a/README.md b/README.md
index 77cfdc8906b1..a8da462c3c46 100644
--- a/README.md
+++ b/README.md
@@ -114,4 +114,5 @@ Copyright (c) 2006-2017, Intel Corporation. All rights 
reserved.
 |          | [#425](https://bugzilla.tianocore.org/show_bug.cgi?id=425) [CCS] 
clarify line breaking and indentation requirements for multi-line function 
calls |            |
 |          | [#1656](https://bugzilla.tianocore.org/show_bug.cgi?id=1656) 
Update all Wiki pages for the BSD+Patent license change with SPDX identifiers   
     |            |
 |          | [#607](https://bugzilla.tianocore.org/show_bug.cgi?id=607) 
Document code comment requirements for spurious variable assignments            
       |            |
-| 2.3      | Add 4.2 Directory names section and update File names section for 
the guidelines of module directory and file naming|September 2022||
+| 2.3      | Add 4.2 Directory names section and update File names section for 
the guidelines of module directory and file naming                              
|September 2022|
+| 2.4      | The use of the 'static' C keyword is now preferred over the EDK2 
type 'STATIC'                                                                   
 |February 2025|
diff --git a/book.json b/book.json
index d112b26e3ebf..a46c487e1b5c 100644
--- a/book.json
+++ b/book.json
@@ -2,7 +2,7 @@
   "variables" : {
     "draft"   : "yes",
     "title"   : "EDK II C Coding Standards Specification",
-    "version" : "Revision 2.2"
+    "version" : "Revision 2.4"
   },
   "plugins": ["puml-aleung"],
   "pluginsConfig": {}
-- 
2.48.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#121067): https://edk2.groups.io/g/devel/message/121067
Mute This Topic: https://groups.io/mt/110968939/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to