Index: tests/.expect/attr-priority.txt
===================================================================
--- tests/.expect/attr-priority.txt	(revision d30c22957229a094959468625bda721051e9c843)
+++ tests/.expect/attr-priority.txt	(revision 0497b6ba3fd2570c5022f91577f43565dbbd1758)
@@ -1,4 +1,4 @@
-attr-priority.cfa:7:1 warning: invalid attribute: constructor priorities from 101 to 200 are reserved for the implementation
-attr-priority.cfa:12:1 warning: invalid attribute: destructor priorities from 101 to 200 are reserved for the implementation
+attr-priority.cfa:7:1 warning: invalid attribute: constructor priorities from 101 to 200 are reserved for the implementation.
+attr-priority.cfa:12:1 warning: invalid attribute: destructor priorities from 101 to 200 are reserved for the implementation.
 attr-priority.cfa:8:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
   Name: malloc
Index: tests/.expect/attributes.x64.txt
===================================================================
--- tests/.expect/attributes.x64.txt	(revision d30c22957229a094959468625bda721051e9c843)
+++ tests/.expect/attributes.x64.txt	(revision 0497b6ba3fd2570c5022f91577f43565dbbd1758)
@@ -1337,2 +1337,81 @@
     return _X4_retS3Vad_1;
 }
+__attribute__ (( noreturn )) void _X4fredFv___1(void){
+    __attribute__ ((unused)) signed int _X1ii_2;
+    switch ( 3 ) {
+        case 2:
+            {
+                {
+                    ((void)4);
+                }
+
+            }
+        case 1:
+            {
+                {
+                    ((void)3);
+                }
+
+            }
+    }
+
+}
+__attribute__ ((noreturn)) void _X4maryFv___1(void){
+    struct __attribute__ ((aligned(64))) S {
+        signed int _X1ii_2;
+    };
+    inline void _X12_constructorFv_S1S_autogen___2(__attribute__ ((unused)) struct S *_X4_dstS1S_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ii_2) /* ?{} */);
+        }
+
+    }
+    inline void _X12_constructorFv_S1SS1S_autogen___2(__attribute__ ((unused)) struct S *_X4_dstS1S_2, __attribute__ ((unused)) struct S _X4_srcS1S_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ii_2=_X4_srcS1S_2._X1ii_2) /* ?{} */);
+        }
+
+    }
+    inline void _X11_destructorFv_S1S_autogen___2(__attribute__ ((unused)) struct S *_X4_dstS1S_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ii_2) /* ^?{} */);
+        }
+
+    }
+    inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___2(__attribute__ ((unused)) struct S *_X4_dstS1S_2, __attribute__ ((unused)) struct S _X4_srcS1S_2){
+        __attribute__ ((unused)) struct S _X4_retS1S_2;
+        {
+            ((void)((*_X4_dstS1S_2)._X1ii_2=_X4_srcS1S_2._X1ii_2));
+        }
+
+        {
+            ((void)_X12_constructorFv_S1SS1S_autogen___2((&_X4_retS1S_2), (*_X4_dstS1S_2)));
+        }
+
+        return _X4_retS1S_2;
+    }
+    inline void _X12_constructorFv_S1Si_autogen___2(__attribute__ ((unused)) struct S *_X4_dstS1S_2, signed int _X1ii_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ii_2=_X1ii_2) /* ?{} */);
+        }
+
+    }
+    __attribute__ ((unused)) signed int _X1ii_2;
+    switch ( 3 ) {
+        case 2:
+            {
+                {
+                    ((void)4);
+                }
+
+            }
+        case 1:
+            {
+                {
+                    ((void)3);
+                }
+
+            }
+    }
+
+}
Index: tests/attributes.cfa
===================================================================
--- tests/attributes.cfa	(revision d30c22957229a094959468625bda721051e9c843)
+++ tests/attributes.cfa	(revision 0497b6ba3fd2570c5022f91577f43565dbbd1758)
@@ -10,6 +10,6 @@
 // Created On       : Mon Feb  6 16:07:02 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Feb 23 20:33:07 2023
-// Update Count     : 39
+// Last Modified On : Sun Dec 15 17:45:39 2024
+// Update Count     : 49
 // 
 
@@ -162,4 +162,29 @@
 };
 
+[[ noreturn ]] void fred() {
+	int [[unused]] i;
+	switch ( 3 ) {
+	  case 2:
+		4;
+//		__attribute__(( fallthrough ))
+//		[[fallthrough]]
+	  case 1:
+		3;
+	}
+}
+
+@[ noreturn ] void mary() {
+	@[aligned(64)] struct S { int i; };
+	int @[unused] i;
+	switch ( 3 ) {
+	  case 2:
+		4;
+//		__attribute__(( fallthrough ))
+//		[[fallthrough]]
+	  case 1:
+		3;
+	}
+}
+
 // Local Variables: //
 // tab-width: 4 //
Index: tests/warnings/.expect/self-assignment.txt
===================================================================
--- tests/warnings/.expect/self-assignment.txt	(revision d30c22957229a094959468625bda721051e9c843)
+++ tests/warnings/.expect/self-assignment.txt	(revision 0497b6ba3fd2570c5022f91577f43565dbbd1758)
@@ -7,5 +7,5 @@
   reference to signed int
 ... with resolved type:
-  reference to signed int
+  reference to signed int.
 warnings/self-assignment.cfa:30:1 warning: self assignment of expression: Generated Cast of:
   Variable Expression: s: instance of struct S with body
@@ -15,5 +15,5 @@
   reference to instance of struct S with body
 ... with resolved type:
-  reference to instance of struct S with body
+  reference to instance of struct S with body.
 warnings/self-assignment.cfa:31:1 warning: self assignment of expression: Generated Cast of:
   Member Expression, with field:
@@ -28,5 +28,5 @@
   reference to signed int
 ... with resolved type:
-  reference to signed int
+  reference to signed int.
 warnings/self-assignment.cfa:32:1 warning: self assignment of expression: Generated Cast of:
   Member Expression, with field:
@@ -46,3 +46,3 @@
   reference to signed int
 ... with resolved type:
-  reference to signed int
+  reference to signed int.
