diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2022-10-17 22:08:37 +0200 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2022-11-07 09:36:35 +0100 |
commit | dc3208e698b2f424d892d3c9e5d5562ccde9e4cf (patch) | |
tree | 0eb9b46113774e074e28f4d0d29f64844926f8cc /libobjc/exception.c | |
parent | d24f279c023051c95b88b8405ac8aa4ebb44b107 (diff) | |
download | gcc-dc3208e698b2f424d892d3c9e5d5562ccde9e4cf.zip gcc-dc3208e698b2f424d892d3c9e5d5562ccde9e4cf.tar.gz gcc-dc3208e698b2f424d892d3c9e5d5562ccde9e4cf.tar.bz2 |
ada: Fix performance regression related to references in Refined_State
Recently added call to In_Pragma_Expression caused a performance
regression. It might require climbing syntax trees of arbitrarily deep
expressions, while previously references within pragmas were detected in
bounded time.
This patch restores the previous efficiency. However, while the original
code only detected references directly within pragma argument
associations, now we also detect references inside aggregates, e.g.
like those in pragma Refined_State.
gcc/ada/
* sem_prag.adb (Non_Significant_Pragma_Reference): Detect
references with aggregates; only assign local variables Id and C
when necessary.
Diffstat (limited to 'libobjc/exception.c')
0 files changed, 0 insertions, 0 deletions