diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 875b08d9bea7f33f0a437d2ce5690f1b28c7e17c..cbefac7d82ce525e1fdf00558eece45e89f9d11f 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,9 @@
+2013-12-05  Marek Polacek  <polacek@redhat.com>
+
+	PR c/52023
+	* c-common.c (c_sizeof_or_alignof_type): Move a declaration into
+	[ADJUST_FIELD_ALIGN].
+
 2013-12-04  Joseph Myers  <joseph@codesourcery.com>
 
 	PR c/52023
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
index a06dea8b7f36fda0f828cb77734d3af3f84f26a9..a4f85645e5171ba462f32df3fe2b7e5a443c6a14 100644
--- a/gcc/c-family/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -5004,10 +5004,10 @@ c_sizeof_or_alignof_type (location_t loc,
 #ifdef BIGGEST_FIELD_ALIGNMENT
 	  align = MIN (align, BIGGEST_FIELD_ALIGNMENT);
 #endif
-	  tree field = build_decl (UNKNOWN_LOCATION, FIELD_DECL, NULL_TREE,
-				   type);
 	  unsigned int field_align = align;
 #ifdef ADJUST_FIELD_ALIGN
+	  tree field = build_decl (UNKNOWN_LOCATION, FIELD_DECL, NULL_TREE,
+				   type);
 	  field_align = ADJUST_FIELD_ALIGN (field, field_align);
 #endif
 	  align = MIN (align, field_align);