> On Mon, Jul 14, 2014 at 09:50:34AM -0400, Jason Merrill wrote:
> > >>/daten/aranym/gcc/gcc-20140714/gcc/testsuite/g++.dg/cpp0x/static_assert9.C:5:1:
> > >> error: non-constant condition for static assertion
> > >>/daten/aranym/gcc/gcc-20140714/gcc/testsuite/g++.dg/cpp0x/static_assert9.C:5:1:
> > >> error: '(f != 0u)' is not a constant expression
> > >
> > >Ah, sorry, missed this one.  I think the error is correct (based on 
> > >earlier discussion we can
> > >not really expect addresses of symbols to be non-NULL), so I would just 
> > >update the testcase?
> > 
> > Hmm.  I think the C++ standard says this is constant, and of course whether
> > an expression is constant is more significant in C++ because of templates
> > and constexpr.  clang doesn't give this error, EDG does.
> > 
> > For C++, my inclination would be to say that if a symbol is declared weak,
> > it needs to be declared weak before the first use, just like inline
> > functions.
> 
> I'd say that even for C we should require that, and thus for
> non-weak symbols expect they are non-NULL, unless
> -fno-delete-null-pointer-checks tells us not to.

OK, I suppose we can't go without bit of code duplication here (at parsing time 
and with symtab built).
Will prepare patch for this.

Honza
>       Jakub

Reply via email to