Landing: e7368d76b9f4

Project / Subsystem

gcc / ada

Date

2026-01-16

Author

Claire Dross

Commit

e7368d76b9f41e054204ed42096de165cb9e19f2

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
ada
patch_id
commit_hash
e7368d76b9f41e054204ed42096de165cb9e19f2
source_type
github
headline
Ada Rejects Exceptional Contracts on No_Raise Subprograms.
tldr
The Ada compiler now rejects the SPARK-specific `Exceptional_Cases` and `Exit_Cases` pragmas when used with `No_Raise` subprograms.
author
Claire Dross
outcome
committed
performance_win
false
breaking_change
false
series_id
series_parts
[]
tags
  • ada
  • spark
  • exceptions
  • contracts
discussion_id_link
bugzilla_pr
date
2026-01-16T00:00:00.000Z

The Ada compiler now rejects the SPARK-specific exceptional contract pragmas Exceptional_Cases and Exit_Cases when they are incompatible with the No_Raise aspect. The No_Raise aspect, specific to GNAT, indicates that a subprogram will not raise any exceptions. The Analyze_Exit_Contract and Analyze_Pragma functions in sem_prag.adb have been updated to enforce this restriction.