On 08/31/2012 04:47 AM, Rafael Espíndola wrote:
A new version matching the API changes on the llvm patch is attached.

Cheers,
Rafael


Hello Rafael.

Since we were observing a nondeterministic order in the invocation of callback ASTConsumer::HandleCXXImplicitFunctionInstantiation, we started searching the mailing list and bumped into this thread.

We downloaded and applied the two patches for clang and llvm: unless we did something wrong (e.g., out-of-date patches?), it seems that the nondeterministic behavior we were observing is still there.

We managed to produce a testcase on which clang (no matter if patched or not) generates multiple diagnostics in nondeterministic order. The test is attached. Running it some 4/5 times should be enough to see the differences in the ordering of diagnostics.

Can you have a try on it?
Is this due to another, unrelated source of nondeterminism?

Enea.

template <typename T>
struct B {
  virtual void m1();
  virtual void m2();
  virtual ~B();
};

template <typename T>
struct D1 : virtual B<T> {
  void m1();
  void m2();
};

template <typename T>
struct D2 : virtual B<T> {
  void m1();
  void m2();
};

template <typename T>
struct E : D1<T>, D2<T> {
};

void f() {
  E<int> e;
}
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to