let LateParsed = 1;
let TemplateDependent = 1;
let ParseArgumentsAsUnevaluated = 1;
+ let DuplicatesAllowedWhileMerging = 1;
let Subjects = SubjectList<[FunctionDefinition, FunctionTemplate]>;
}
let LateParsed = 1;
let TemplateDependent = 1;
let ParseArgumentsAsUnevaluated = 1;
+ let DuplicatesAllowedWhileMerging = 1;
let Subjects = SubjectList<[FunctionDefinition, FunctionTemplate]>;
}
EXCLUSIVE_TRYLOCK_FUNCTION(true, mu2_);
bool readertrylock() SHARED_TRYLOCK_FUNCTION(true, mu1_)
SHARED_TRYLOCK_FUNCTION(true, mu2_);
+ void assertBoth() ASSERT_EXCLUSIVE_LOCK(mu1_)
+ ASSERT_EXCLUSIVE_LOCK(mu2_);
+ void assertShared() ASSERT_SHARED_LOCK(mu1_)
+ ASSERT_SHARED_LOCK(mu2_);
void test();
+ void testAssert();
+ void testAssertShared();
};
}
}
+// Force duplication of attributes
+void Foo::assertBoth() { }
+void Foo::assertShared() { }
+
+void Foo::testAssert() {
+ assertBoth();
+ a = 0;
+ b = 0;
+}
+
+void Foo::testAssertShared() {
+ assertShared();
+ int zz = a + b;
+}
+
} // end namespace MultipleAttributeTest