clang: sem definições de método virtual fora de linha (classe C ++ abstrata pura)

Estou tentando compilar o seguinte código C ++ simples usando o Clang-3.5:

test.h:

class A
{
  public:
    A();
    virtual ~A() = 0;
};

test.cc:

#include "test.h"

A::A() {;}
A::~A() {;}

O comando que eu uso para compilar isso (Linux, uname -r: 3.16.0-4-amd64):

$clang-3.5 -Weverything -std=c++11 -c test.cc

E o erro que eu recebo:

./test.h:1:7: warning: 'A' has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit [-Wweak-vtables]

Alguma dica de por que isso está emitindo um aviso? O destruidor virtual não está embutido. Muito pelo contrário, há uma definição fora de linha fornecida em test.cc. O que estou perdendo aqui?

Editar

Não acho que essa pergunta seja uma duplicata de:Qual é o significado das tabelas -Wweak-vt do clang? como Filip Roséen sugeriu. Na minha pergunta, refiro-me especificamente a classes abstratas puras (não mencionadas na duplicata sugerida). eu sei como-Wweak-vtables trabalha com classes não abstratas e eu estou bem com isso. No meu exemplo, defino o destruidor (que é puro abstrato) no arquivo de implementação. Isso deve impedir que o Clang emita erros, mesmo com-Wweak-vtables.

questionAnswers(3)

yourAnswerToTheQuestion