r214369 - Rename this test so that it actually runs, and fix it so that it passes.

Richard Smith richard-llvm at metafoo.co.uk
Wed Jul 30 17:22:56 PDT 2014


Author: rsmith
Date: Wed Jul 30 19:22:56 2014
New Revision: 214369

URL: http://llvm.org/viewvc/llvm-project?rev=214369&view=rev
Log:
Rename this test so that it actually runs, and fix it so that it passes.

Added:
    cfe/trunk/test/SemaCXX/atomic-type.cpp
      - copied, changed from r214368, cfe/trunk/test/SemaCXX/atomic-type.cxx
Removed:
    cfe/trunk/test/SemaCXX/atomic-type.cxx

Copied: cfe/trunk/test/SemaCXX/atomic-type.cpp (from r214368, cfe/trunk/test/SemaCXX/atomic-type.cxx)
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/atomic-type.cpp?p2=cfe/trunk/test/SemaCXX/atomic-type.cpp&p1=cfe/trunk/test/SemaCXX/atomic-type.cxx&r1=214368&r2=214369&rev=214369&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/atomic-type.cxx (original)
+++ cfe/trunk/test/SemaCXX/atomic-type.cpp Wed Jul 30 19:22:56 2014
@@ -48,7 +48,7 @@ typedef _Atomic int(A::*mem_ptr_to_atomi
 
 typedef _Atomic(int)&atomic_int_ref;
 typedef _Atomic int &atomic_int_ref;
-typedef _Atomic atomic_int_ref atomic_int_ref; // ok, qualifiers on references ignored in this case.
+typedef _Atomic atomic_int_ref atomic_int_ref; // expected-warning {{'_Atomic' qualifier on reference type 'atomic_int_ref' (aka '_Atomic(int) &') has no effect}}
 
 typedef int &_Atomic atomic_reference_to_int; // expected-error {{'_Atomic' qualifier may not be applied to a reference}}
 typedef _Atomic(int &) atomic_reference_to_int; // expected-error {{_Atomic cannot be applied to reference type 'int &'}}

Removed: cfe/trunk/test/SemaCXX/atomic-type.cxx
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/atomic-type.cxx?rev=214368&view=auto
==============================================================================
--- cfe/trunk/test/SemaCXX/atomic-type.cxx (original)
+++ cfe/trunk/test/SemaCXX/atomic-type.cxx (removed)
@@ -1,58 +0,0 @@
-// RUN: %clang_cc1 -verify -pedantic %s
-
-template<typename T> struct atomic {
-  _Atomic(T) value;
-
-  void f() _Atomic; // expected-error {{expected ';' at end of declaration list}}
-};
-
-template<typename T> struct user {
-  struct inner { char n[sizeof(T)]; };
-  atomic<inner> i;
-};
-
-user<int> u;
-
-// Test overloading behavior of atomics.
-struct A { };
-
-int &ovl1(_Atomic(int));
-int &ovl1(_Atomic int); // ok, redeclaration
-long &ovl1(_Atomic(long));
-float &ovl1(_Atomic(float));
-double &ovl1(_Atomic(A const *const *));
-double &ovl1(A const *const *_Atomic);
-short &ovl1(_Atomic(A **));
-
-void test_overloading(int i, float f, _Atomic(int) ai, _Atomic(float) af,
-                      long l, _Atomic(long) al, A const *const *acc,
-                      A const ** ac, A **a) {
-  int& ir1 = ovl1(i);
-  int& ir2 = ovl1(ai);
-  long& lr1 = ovl1(l);
-  long& lr2 = ovl1(al);
-  float &fr1 = ovl1(f);
-  float &fr2 = ovl1(af);
-  double &dr1 = ovl1(acc);
-  double &dr2 = ovl1(ac);
-  short &sr1 = ovl1(a);
-}
-
-typedef int (A::*fp)() _Atomic; // expected-error {{expected ';' after top level declarator}} expected-warning {{does not declare anything}}
-
-typedef _Atomic(int(A::*)) atomic_mem_ptr_to_int;
-typedef int(A::*_Atomic atomic_mem_ptr_to_int);
-
-typedef _Atomic(int)(A::*mem_ptr_to_atomic_int);
-typedef _Atomic int(A::*mem_ptr_to_atomic_int);
-
-typedef _Atomic(int)&atomic_int_ref;
-typedef _Atomic int &atomic_int_ref;
-typedef _Atomic atomic_int_ref atomic_int_ref; // ok, qualifiers on references ignored in this case.
-
-typedef int &_Atomic atomic_reference_to_int; // expected-error {{'_Atomic' qualifier may not be applied to a reference}}
-typedef _Atomic(int &) atomic_reference_to_int; // expected-error {{_Atomic cannot be applied to reference type 'int &'}}
-
-struct S {
-  _Atomic union { int n; }; // expected-warning {{anonymous union cannot be '_Atomic'}}
-};





More information about the cfe-commits mailing list