• Tom Lane's avatar
    Tighten configure's test for __builtin_constant_p(). · 9220b00e
    Tom Lane authored
    Commit 9fa6f00b assumed that __builtin_constant_p("string literal")
    is TRUE, if the compiler has that function at all.  Buildfarm results
    show that Sun Studio 12, at least, breaks that assumption.  Removing
    that usage would leave us with no mechanical check for a very fragile
    coding requirement, so instead teach configure to ignore
    __builtin_constant_p() if it doesn't behave that way.  We could
    complicate matters by distinguishing three cases (no such function,
    vs does, vs doesn't work for string literals); but for now, that seems
    unnecessary because our other existing uses of this function are just
    fairly minor optimizations of non-returning elog/ereport.  We can live
    without that on the small population of compilers that act this way.
    
    Discussion: https://postgr.es/m/22997.1513264066@sss.pgh.pa.us
    9220b00e
configure 486 KB