diff --git a/gcc/builtins.c b/gcc/builtins.c
index 7fe32b160a43a30dfb1656e1f54d306ba42f3bcd..0d28992d2c212d781ac2cf556057761b6d890783 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -232,13 +232,13 @@ get_pointer_alignment (tree exp, unsigned int max_align)
 {
   unsigned int align, inner;
 
-  if (! POINTER_TYPE_P (TREE_TYPE (exp)))
-    return 0;
-
   /* We rely on TER to compute accurate alignment information.  */
   if (!(optimize && flag_tree_ter))
     return 0;
 
+  if (!POINTER_TYPE_P (TREE_TYPE (exp)))
+    return 0;
+
   align = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (exp)));
   align = MIN (align, max_align);