rjmccall added a comment.

The builtins with custom type-checking are all true intrinsics like 
`__builtin_operator_new` and so on.  They really can't be validly declared by 
the user program.  The thing that seems most likely to avoid random compiler 
crashes would be to either forbid explicit declarations of them or treat those 
as no longer being builtins.  If we need to maintain compatibility with people 
making custom declarations, we would need to always treat them as builtins and 
run the risk of crashing if someone declares one with a bad signature.  But I 
don't think it's unfair of us to break those people; that is seriously not 
reasonable user behavior.

It's possible that custom declarations are people trying to create 
compatibility shims for compilers that don't provide these as builtins.  Those 
people should be guarding their custom declarations, preferably with 
`__has_builtin`.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D77491/new/

https://reviews.llvm.org/D77491

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to