[cfe-commits] r165462 - in /cfe/trunk: lib/Parse/ParseStmt.cpp test/Sema/pragma-align-mac68k.c

Eli Friedman eli.friedman at gmail.com
Mon Oct 8 16:52:38 PDT 2012


Author: efriedma
Date: Mon Oct  8 18:52:38 2012
New Revision: 165462

URL: http://llvm.org/viewvc/llvm-project?rev=165462&view=rev
Log:
Make sure we allow "#pragma options align=mac68k" in function-local contexts.  <rdar://problem/12453134>


Modified:
    cfe/trunk/lib/Parse/ParseStmt.cpp
    cfe/trunk/test/Sema/pragma-align-mac68k.c

Modified: cfe/trunk/lib/Parse/ParseStmt.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseStmt.cpp?rev=165462&r1=165461&r2=165462&view=diff
==============================================================================
--- cfe/trunk/lib/Parse/ParseStmt.cpp (original)
+++ cfe/trunk/lib/Parse/ParseStmt.cpp Mon Oct  8 18:52:38 2012
@@ -254,6 +254,11 @@
     HandlePragmaPack();
     return StmtEmpty();
 
+  case tok::annot_pragma_align:
+    ProhibitAttributes(Attrs);
+    HandlePragmaAlign();
+    return StmtEmpty();
+
   case tok::annot_pragma_fp_contract:
     ProhibitAttributes(Attrs);
     HandlePragmaFPContract();

Modified: cfe/trunk/test/Sema/pragma-align-mac68k.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/pragma-align-mac68k.c?rev=165462&r1=165461&r2=165462&view=diff
==============================================================================
--- cfe/trunk/test/Sema/pragma-align-mac68k.c (original)
+++ cfe/trunk/test/Sema/pragma-align-mac68k.c Mon Oct  8 18:52:38 2012
@@ -96,3 +96,15 @@
 extern int a11_1[offsetof(struct s11, f1) == 2 ? 1 : -1];
 extern int a11_2[sizeof(struct s11) == 10 ? 1 : -1];
 extern int a11_3[__alignof(struct s11) == 2 ? 1 : -1];
+
+#pragma options align=reset
+
+void f12(void) {
+  #pragma options align=mac68k
+  struct s12 {
+    char f0;
+    int  f1;
+  };
+  #pragma options align=reset
+  extern int a12[sizeof(struct s12) == 6 ? 1 : -1];
+}





More information about the cfe-commits mailing list