]> granicus.if.org Git - clang/commitdiff
Fix spurious trailing comma when printing some of the __c11_atomic_* builtins. Patch...
authorRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 1 May 2013 19:02:43 +0000 (19:02 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 1 May 2013 19:02:43 +0000 (19:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180867 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/StmtPrinter.cpp
test/SemaCXX/ast-print.cpp

index 95bacb64b30fa5b2a35067056f949299cbe21430..a7177063ce0f8e34b2f8973221b3eddc42ca7b25 100644 (file)
@@ -1113,24 +1113,25 @@ void StmtPrinter::VisitAtomicExpr(AtomicExpr *Node) {
 
   // AtomicExpr stores its subexpressions in a permuted order.
   PrintExpr(Node->getPtr());
-  OS << ", ";
   if (Node->getOp() != AtomicExpr::AO__c11_atomic_load &&
       Node->getOp() != AtomicExpr::AO__atomic_load_n) {
-    PrintExpr(Node->getVal1());
     OS << ", ";
+    PrintExpr(Node->getVal1());
   }
   if (Node->getOp() == AtomicExpr::AO__atomic_exchange ||
       Node->isCmpXChg()) {
-    PrintExpr(Node->getVal2());
     OS << ", ";
+    PrintExpr(Node->getVal2());
   }
   if (Node->getOp() == AtomicExpr::AO__atomic_compare_exchange ||
       Node->getOp() == AtomicExpr::AO__atomic_compare_exchange_n) {
-    PrintExpr(Node->getWeak());
     OS << ", ";
+    PrintExpr(Node->getWeak());
   }
-  if (Node->getOp() != AtomicExpr::AO__c11_atomic_init)
+  if (Node->getOp() != AtomicExpr::AO__c11_atomic_init) {
+    OS << ", ";
     PrintExpr(Node->getOrder());
+  }
   if (Node->isCmpXChg()) {
     OS << ", ";
     PrintExpr(Node->getOrderFail());
index 5de8c4b51b905b9fd07a182acc6e1209a91df773..921f7d8baaae7dd531a30ed0ab201cf930cb314c 100644 (file)
@@ -137,3 +137,14 @@ void test12() {
   ConstrWithCleanupsClass cwcExplicitArg(VirualDestrClass(56));
 }
 
+// CHECK: void test13() {
+// CHECK:   _Atomic(int) i;
+// CHECK:   __c11_atomic_init(&i, 0);
+// CHECK:   __c11_atomic_load(&i, 0);
+// CHECK: }
+void test13() {
+  _Atomic(int) i;
+  __c11_atomic_init(&i, 0);
+  __c11_atomic_load(&i, 0);
+}
+