AaronBallman wrote:

> > FWIW, I did verify that it's very unlikely the changes in this PR will 
> > break existing code: 
> > https://sourcegraph.com/search?q=context:global+__need_unreachable+-file:.*clang.*&patternType=keyword&sm=0,
> >  so that's a good thing.
> > > I do wonder if we could have the broader builtin headers discussion 
> > > independent of this patch? Is everyone happy with this patch? We can keep 
> > > talking about the builtin headers in here independent of merging right?
> > 
> > 
> > I guess I don't see these as independent topics; if we decide that C++ mode 
> > should not have observable differences in C headers, then the changes here 
> > are incorrect. I think we should have this discussion in a broader context 
> > (like Discourse) before moving forward with these changes.
> > Also, I'd still like an explanation for [this 
> > question](https://github.com/llvm/llvm-project/pull/86748#issuecomment-2023145043):
> > > I don't understand why this is making into C++ builds at all:
> > 
> > 
> > because it may turn out we don't need these changes in the first place 
> > because the issue is elsewhere.
> 
> Right now I just noticed that in a C++ test I was writing that stddef.h alone 
> doesn't give me unreachable, but __needs_unreachable does. And that's 
> probably wrong because unreachable belongs to <utility> in C++ and _not_ 
> stddef.h. The C++ standard has some frustrating divergence with the C 
> standard as to what the c stdlib headers declare...

I don't yet agree that it's wrong -- you define the macro saying you want 
`unreachable` from `stddef.h`, so you get `unreachable` from `stddef.h`. 
Morally, it's very similar to:
```
#define unreachable "I am doing something which causes myself pain"
#include <utility>
```

https://github.com/llvm/llvm-project/pull/86748
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to