Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MinGWビルドで出ているinlineの警告に対処する。 #1355

Merged

Conversation

berryzplus
Copy link
Contributor

PR の目的

MinGWビルドで出力されているGCCの警告に対処します。

カテゴリ

  • リファクタリング
  • ビルド関連
    • Azure Pipelines

PR の背景

こんな警告が出ています。

https://dev.azure.com/sakuraeditor/sakura/_build/results?buildId=1955&view=logs&j=e3f261b8-cb91-53d9-e383-fc59c474186f&t=aac127ac-8c3a-5e3b-0b12-66f255f874eb&l=398

In file included from typeprop/CImpExpManager.cpp:36:
./dlg/CDlgOpenFile.h:102:14: warning: inline function 'virtual bool CDlgOpenFile::DoModal_GetOpenFileName(WCHAR*, EFilter)' used but never defined
102 | inline bool DoModal_GetOpenFileName(WCHAR* pszPath, EFilter eAddFileter = EFITER_TEXT) override;
| ^~~~~~~~~~~~~~~~~~~~~~~
./dlg/CDlgOpenFile.h:103:14: warning: inline function 'virtual bool CDlgOpenFile::DoModal_GetSaveFileName(WCHAR*)' used but never defined
g++ -finput-charset=utf-8 -fexec-charset=cp932 -I. -DWIN32 -D_WIN32_WINNT=_WIN32_WINNT_WIN7 -D_UNICODE -DUNICODE -DNDEBUG -O2 -std=c++17 -o typeprop/CPropTypesColor.o -c typeprop/CPropTypesColor.cpp
103 | inline bool DoModal_GetSaveFileName(WCHAR* pszPath) override;
| ^~~~~~~~~~~~~~~~~~~~~~~

inlineは付加したメソッドに可能な限りメソッドをインライン展開するという属性を付与するキーワードです。

キーワードが適切に機能した場合、メソッドのコードは呼出元にインライン展開されて、メソッド呼出のオーバーヘッドがなくなります。

警告が出てる理由をなんとなく示すとこんな感じです。

  1. virtual IDlgOpenFile::DoModal_GetOpenFileName .hで宣言。宣言のみのインターフェースメソッド。
  2. inline CDlgOpenFile::DoModal_GetOpenFileName .hで宣言。
  3. inline CDlgOpenFile::DoModal_GetOpenFileName .cppで実装。
  4. IDlgOpenFile::DoModal_GetOpenFileName 実際の呼出しはインターフェース経由なのでインライン化されない。

警告が出ないようにするには 2. のinlineを外すか、4. をCDlgOpenFileの直接呼出しに変更する必要があります。

PR のメリット

PR のデメリット (トレードオフとかあれば)

仕様・動作説明

テスト内容

ビルド可能であれば確認として十分と思います。

テスト1

手順

PR の影響範囲

  • MinGWビルドで出力される警告が減ります。

関連 issue, PR

参考資料

@AppVeyorBot
Copy link

@k-takata k-takata changed the title MinGWビルdで出ているinlineの警告に対処する。 MinGWビルドで出ているinlineの警告に対処する。 Jul 30, 2020
@berryzplus
Copy link
Contributor Author

ぬはっ!
<img alt="amd" src="https://user-images.githubusercontent.com/3253151/88997427-ab0c0400-d32a-11ea-850a-f6c56cbbaa6d.png" width="600" />

@berryzplus
Copy link
Contributor Author

レビューありがとうございます。マージしちゃいます。

@berryzplus berryzplus merged commit b9e21f8 into sakura-editor:master Jul 31, 2020
@berryzplus berryzplus deleted the feature/remove_inline_keyword branch July 31, 2020 03:39
@k-takata k-takata added the MinGW MinGW label Aug 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
MinGW MinGW
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants