[applied] ir: translation_unit::is_empty should work without environment.

Message ID 87edwpkd33.fsf@redhat.com
State New
Headers
Series [applied] ir: translation_unit::is_empty should work without environment. |

Commit Message

Dodji Seketeli Sept. 5, 2022, 4:20 p.m. UTC
  Hello,

I noticed that some code failed trying to call
translation_unit::is_empty in the absence of the instance of the
abigail::ir::environment type used to create the IR.

This is because translation_unit::is_empty was trying to create
something.  That's odd.  It shouldn't need to create anything to test
for its emptiness.  Fixed thus.

	* src/abg-ir.cc (translation_unit::is_empty): If there is no
	global scope, then we know its empty.  No need to create one.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
---
 src/abg-ir.cc | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
  

Patch

diff --git a/src/abg-ir.cc b/src/abg-ir.cc
index 7c8b6640..91c8e99b 100644
--- a/src/abg-ir.cc
+++ b/src/abg-ir.cc
@@ -1353,7 +1353,11 @@  translation_unit::get_loc_mgr() const
 /// @return true iff the current translation unit is empty.
 bool
 translation_unit::is_empty() const
-{return get_global_scope()->is_empty();}
+{
+  if (!priv_->global_scope_)
+    return true;
+  return get_global_scope()->is_empty();
+}
 
 /// Getter of the address size in this translation unit.
 ///