diff --git a/angr/analyses/cfg_fast.py b/angr/analyses/cfg_fast.py
index <HASH>..<HASH> 100644
--- a/angr/analyses/cfg_fast.py
+++ b/angr/analyses/cfg_fast.py
@@ -802,10 +802,6 @@ class CFGFast(ForwardAnalysis, CFGBase):    # pylint: disable=abstract-method
 
             self._update_progress(percentage)
 
-        current_function_addr = entry.func_addr
-
-        self._changed_functions.add(current_function_addr)
-
     def _intra_analysis(self):
         pass
 
@@ -1091,6 +1087,8 @@ class CFGFast(ForwardAnalysis, CFGBase):    # pylint: disable=abstract-method
 
             self._function_add_node(addr, current_function_addr)
 
+            self._changed_functions.add(current_function_addr)
+
         except (AngrTranslationError, AngrMemoryError):
             return [ ]
 
@@ -1149,6 +1147,8 @@ class CFGFast(ForwardAnalysis, CFGBase):    # pylint: disable=abstract-method
 
             self._function_add_node(addr, current_function_addr)
 
+            self._changed_functions.add(current_function_addr)
+
         except (AngrTranslationError, AngrMemoryError):
             return [ ]
Move _changed_functions modification code around.

Move the modification to _changed_functions to _scan_irsb() and
_scan_procedure(), since the function address might be changed (see next
commit).