Jump to content
alank2

C++Builder 12.3 first build [bcc32 Warning] processthreadsapi.h(1165): W8026 Functions with exception specifications are not expanded inline

Recommended Posts

3 questions:

 

#1 - If I open a project and build it, I get 7 of this warning:

[bcc32 Warning] processthreadsapi.h(1165): W8026 Functions with exception specifications are not expanded inline

 

If I build it again, they disappear.

If I close the project (not the IDE), reopen it, build again, I get the 7 warnings back for the first time, but again, not subsequent times.

 

#2 - Another oddity, the build window shows 50 warnings.  It is really the 7 warnings apparently counting at 7 each for a total of 49 plus the 1 other warning that is always present.  Why not just 8 warnings?

 

#3 - The last warning (which doesn't go away no matter how many times I build is):

[bcc32 Warning] System.Net.URLClient.hpp(772): W8058 Cannot create pre-compiled header: code in header

Is this something Embarcadero needs to fix in System.Net.URLClient.hpp?

 

Share this post


Link to post
59 minutes ago, alank2 said:

#1 - If I open a project and build it, I get 7 of this warning:

[bcc32 Warning] processthreadsapi.h(1165): W8026 Functions with exception specifications are not expanded inline

 

If I build it again, they disappear.

If I close the project (not the IDE), reopen it, build again, I get the 7 warnings back for the first time, but again, not subsequent times.

Precompiled header being compiled only 1 time?

59 minutes ago, alank2 said:

#2 - Another oddity, the build window shows 50 warnings.  It is really the 7 warnings apparently counting at 7 each for a total of 49 plus the 1 other warning that is always present.  Why not just 8 warnings?

Is it perhaps 7 messages for 7 different translation units (.cpp files) that are using the same header?  Each translation unit is compiled independently, so output messages are not consolidated across TUs.

59 minutes ago, alank2 said:

#3 - The last warning (which doesn't go away no matter how many times I build is):

[bcc32 Warning] System.Net.URLClient.hpp(772): W8058 Cannot create pre-compiled header: code in header

Is this something Embarcadero needs to fix in System.Net.URLClient.hpp?

What does line 772 actually look like?

Share this post


Link to post

>Precompiled header being compiled only 1 time?

 

I've never had a build produce different messages before even with precompiled headers.


>What does line 772 actually look like?

 

It is the last line of this:

 


class PASCALIMPLEMENTATION TURLClient : public System::TObject
{
    typedef System::TObject inherited;
    
public:
    static _DELPHI_CONST System::Word DefaultConnectionTimeout = System::Word(0xea60);
    
    static _DELPHI_CONST System::Word DefaultSendTimeout = System::Word(0xea60);
    
    static _DELPHI_CONST System::Word DefaultResponseTimeout = System::Word(0xea60);
    
    System::Generics::Collections::TObjectDictionary__2<System::UnicodeString,TURLClient*>* FInstances;
    TCredentialsStorage::TCredentialAuthCallback FAuthCallback;
    TCredentialsStorage::TCredentialAuthEvent FAuthEvent;
    TCredentialsStorage* FInternalCredentialsStorage;
    TProxySettings FProxySettings;
    TCredentialsStorage* FCredentialsStorage;
    int FConnectionTimeout;
    int FSendTimeout;
    int FResponseTimeout;
    TURLClient* __fastcall GetInternalInstance(const System::UnicodeString AScheme);
    System::UnicodeString __fastcall GetUserAgent();
    void __fastcall SetUserAgent(const System::UnicodeString Value);
    
protected:
    TURLHeaders* FCustomHeaders;
    void __fastcall SetConnectionTimeout(const int Value);
    void __fastcall SetSendTimeout(const int Value);
    void __fastcall SetResponseTimeout(const int Value);
    System::UnicodeString __fastcall GetCustomHeaderValue(const System::UnicodeString Name);
    void __fastcall SetCustomHeaderValue(const System::UnicodeString Name, const System::UnicodeString Value);
    virtual System::DynamicArray<System::UnicodeString> __fastcall SupportedSchemes();
    virtual _di_IURLResponse __fastcall DoExecute(const System::UnicodeString ARequestMethod, const TURI &AURI, System::Classes::TStream* const ASourceStream, System::Classes::TStream* const AContentStream, const TNetHeaders AHeaders);
    virtual System::Types::_di_IAsyncResult __fastcall DoExecuteAsync(const System::Classes::_di_TAsyncCallback AsyncCallback, const System::Classes::TAsyncCallbackEvent AsyncCallbackEvent, const System::UnicodeString ARequestMethod, const TURI &AURI, System::Classes::TStream* const ASourceStream, System::Classes::TStream* const AContentStream, const TNetHeaders AHeaders, bool AOwnsSourceStream = false);
    virtual System::Types::_di_IAsyncResult __fastcall DoGetResponseInstance(System::TObject* const AContext, const System::Sysutils::_di_TProc AProc, const System::Classes::_di_TAsyncCallback AsyncCallback, const System::Classes::TAsyncCallbackEvent AsyncCallbackEvent, const _di_IURLRequest ARequest, System::Classes::TStream* const AContentStream);
    virtual _di_IURLRequest __fastcall DoGetRequestInstance(const System::UnicodeString ARequestMethod, const TURI &AURI);
    virtual void __fastcall DoAuthCallback(TAuthTargetType AnAuthTarget, const System::UnicodeString ARealm, const System::UnicodeString AURL, System::UnicodeString &AUserName, System::UnicodeString &APassword, bool &AbortAuth, TAuthPersistenceType &Persistence);
    __classmethod virtual TURLClient* __fastcall CreateInstance();
    static TURLClient* __fastcall GetInstance(const System::UnicodeString AScheme);
    virtual void __fastcall SetCredentialsStorage(TCredentialsStorage* const Value);
    virtual System::DynamicArray<TCredentialsStorage::TCredential> __fastcall GetCredentials(TAuthTargetType AuthTarget, const System::UnicodeString ARealm, const System::UnicodeString URL);
    virtual void __fastcall SetProxySettings(const TProxySettings &Value);
    
public:
    __fastcall TURLClient();
    __fastcall virtual ~TURLClient();
    _di_IURLRequest __fastcall GetRequest(const System::UnicodeString ARequestMethod, const TURI &AURI)/* overload */;
    _di_IURLRequest __fastcall GetRequest(const System::UnicodeString ARequestMethod, const System::UnicodeString AURI)/* overload */;
    _di_IURLResponse __fastcall Execute(const System::UnicodeString ARequestMethod, const TURI &AURI, System::Classes::TStream* const ASourceStream = (System::Classes::TStream*)(0x0), System::Classes::TStream* const AContentStream = (System::Classes::TStream*)(0x0), const TNetHeaders AHeaders = System::DynamicArray<TNameValuePair>())/* overload */;
    _di_IURLResponse __fastcall Execute(const System::UnicodeString ARequestMethod, const System::UnicodeString AURIStr, System::Classes::TStream* const ASourceStream = (System::Classes::TStream*)(0x0), System::Classes::TStream* const AContentStream = (System::Classes::TStream*)(0x0), const TNetHeaders AHeaders = System::DynamicArray<TNameValuePair>())/* overload */;
    virtual _di_IURLResponse __fastcall Execute(const _di_IURLRequest ARequest, System::Classes::TStream* const AContentStream, const TNetHeaders AHeaders)/* overload */;
    System::Types::_di_IAsyncResult __fastcall BeginExecute(const System::UnicodeString ARequestMethod, const TURI &AURI, System::Classes::TStream* const ASourceStream = (System::Classes::TStream*)(0x0), System::Classes::TStream* const AContentStream = (System::Classes::TStream*)(0x0), const TNetHeaders AHeaders = System::DynamicArray<TNameValuePair>())/* overload */;
    System::Types::_di_IAsyncResult __fastcall BeginExecute(const System::Classes::TAsyncCallbackEvent AsyncCallbackEvent, const System::UnicodeString ARequestMethod, const TURI &AURI, System::Classes::TStream* const ASourceStream = (System::Classes::TStream*)(0x0), System::Classes::TStream* const AContentStream = (System::Classes::TStream*)(0x0), const TNetHeaders AHeaders = System::DynamicArray<TNameValuePair>())/* overload */;
    System::Types::_di_IAsyncResult __fastcall BeginExecute(const System::Classes::_di_TAsyncCallback AsyncCallback, const System::UnicodeString ARequestMethod, const TURI &AURI, System::Classes::TStream* const ASourceStream = (System::Classes::TStream*)(0x0), System::Classes::TStream* const AContentStream = (System::Classes::TStream*)(0x0), const TNetHeaders AHeaders = System::DynamicArray<TNameValuePair>())/* overload */;
    System::Types::_di_IAsyncResult __fastcall BeginExecute(const System::UnicodeString ARequestMethod, const System::UnicodeString AURIStr, System::Classes::TStream* const ASourceStream = (System::Classes::TStream*)(0x0), System::Classes::TStream* const AContentStream = (System::Classes::TStream*)(0x0), const TNetHeaders AHeaders = System::DynamicArray<TNameValuePair>())/* overload */;
    System::Types::_di_IAsyncResult __fastcall BeginExecute(const System::Classes::TAsyncCallbackEvent AsyncCallbackEvent, const System::UnicodeString ARequestMethod, const System::UnicodeString AURIStr, System::Classes::TStream* const ASourceStream = (System::Classes::TStream*)(0x0), System::Classes::TStream* const AContentStream = (System::Classes::TStream*)(0x0), const TNetHeaders AHeaders = System::DynamicArray<TNameValuePair>())/* overload */;
    System::Types::_di_IAsyncResult __fastcall BeginExecute(const System::Classes::_di_TAsyncCallback AsyncCallback, const System::UnicodeString ARequestMethod, const System::UnicodeString AURIStr, System::Classes::TStream* const ASourceStream = (System::Classes::TStream*)(0x0), System::Classes::TStream* const AContentStream = (System::Classes::TStream*)(0x0), const TNetHeaders AHeaders = System::DynamicArray<TNameValuePair>())/* overload */;
    __classmethod _di_IURLResponse __fastcall EndAsyncURL(const System::Types::_di_IAsyncResult AAsyncResult)/* overload */;
    __classmethod _di_IURLResponse __fastcall EndAsyncURL(const _di_IURLResponse AAsyncResult)/* overload */;
    __property int ConnectionTimeout = {read=FConnectionTimeout, write=SetConnectionTimeout, nodefault};
    __property int SendTimeout = {read=FSendTimeout, write=SetSendTimeout, nodefault};
    __property int ResponseTimeout = {read=FResponseTimeout, write=SetResponseTimeout, nodefault};
    __property System::UnicodeString UserAgent = {read=GetUserAgent, write=SetUserAgent};
    __property TCredentialsStorage::TCredentialAuthCallback AuthCallback = {read=FAuthCallback, write=FAuthCallback};
    __property TCredentialsStorage::TCredentialAuthEvent AuthEvent = {read=FAuthEvent, write=FAuthEvent};
    __property TCredentialsStorage* CredentialsStorage = {read=FCredentialsStorage, write=SetCredentialsStorage};
    __property TProxySettings ProxySettings = {read=FProxySettings, write=SetProxySettings};
    __property System::UnicodeString CustomHeaders[const System::UnicodeString AName] = {read=GetCustomHeaderValue, write=SetCustomHeaderValue};
    __property TURLHeaders* CustHeaders = {read=FCustomHeaders};
};

 

Share this post


Link to post
7 hours ago, alank2 said:

[bcc32 Warning] processthreadsapi.h(1165): W8026 Functions with exception specifications are not expanded inline

What does line 1165 of processthreadsapi.h look like?  I don't see ANY exception specifications in my copy of processthreadsapi.h, but I'm using 12.2 and not 12.3.

5 hours ago, alank2 said:
6 hours ago, Remy Lebeau said:

What does line 772 actually look like?

It is the last line of this:

...

On the closing '};' of the class?

 

I don't see anything that would be considered "code in header" to trip up a precompiled header, unless the compiler is complaining about the static const members.

Share this post


Link to post

>What does line 1165 of processthreadsapi.h look like?  I don't see ANY exception specifications in my copy of processthreadsapi.h, but I'm using 12.2 and not 12.3.

 

Highlighted here:

 

image.thumb.png.b5049cde748cd7af0cefe9377cb5aa65.png

 

>On the closing '};' of the class?

 

Exactly.

 

>I don't see anything that would be considered "code in header" to trip up a precompiled header, unless the compiler is complaining about the static const members.

 

Could it be these?

   static _DELPHI_CONST System::Word DefaultConnectionTimeout = System::Word(0xea60);
    
    static _DELPHI_CONST System::Word DefaultSendTimeout = System::Word(0xea60);
    
    static _DELPHI_CONST System::Word DefaultResponseTimeout = System::Word(0xea60);
 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×