MCPcopy
hub / github.com/compiler-explorer/compiler-explorer / prepareArguments

Method prepareArguments

lib/compilers/ada.ts:84–203  ·  view source on GitHub ↗
(
        userOptions: string[],
        filters: ParseFiltersAndOutputOptions,
        backendOptions: Record<string, any>,
        inputFilename: string,
        outputFilename: string,
        libraries: SelectedLibraryVersion[],
        overrides: ConfiguredOverrides,
    )

Source from the content-addressed store, hash-verified

82 }
83
84 override prepareArguments(
85 userOptions: string[],
86 filters: ParseFiltersAndOutputOptions,
87 backendOptions: Record<string, any>,
88 inputFilename: string,
89 outputFilename: string,
90 libraries: SelectedLibraryVersion[],
91 overrides: ConfiguredOverrides,
92 ) {
93 backendOptions = backendOptions || {};
94
95 // super call is needed as it handles the GCC Dump files.
96 const backend_opts = super.optionsForBackend(backendOptions, outputFilename);
97
98 // gnatmake opts name {[-cargs opts] [-bargs opts] [-largs opts] [-margs opts]}
99 // ^ ^ ^ ^ ^
100 // | | | | |
101 // `- inputFilename | | | `-- for gnatmake
102 // | | `-- for linker
103 // | `-- for binder (unused here)
104 // `-- for compiler (gcc)
105
106 const gnatmake_opts: string[] = [];
107 const compiler_opts: string[] = [];
108 const binder_opts: string[] = [];
109 const linker_opts: string[] = [''];
110
111 if (this.compiler.adarts) {
112 gnatmake_opts.push(`--RTS=${this.compiler.adarts}`);
113 }
114
115 if (this.compiler.supportsStackUsageOutput && backendOptions.produceStackUsageInfo) {
116 gnatmake_opts.push(unwrap(this.compiler.stackUsageArg));
117 }
118
119 if (!filters.execute && backendOptions.produceGnatDebug && this.compiler.supportsGnatDebugViews)
120 // This is using stdout
121 gnatmake_opts.push('-gnatGL');
122
123 if (!filters.execute && backendOptions.produceGnatDebugTree && this.compiler.supportsGnatDebugViews)
124 // This is also using stdout
125 gnatmake_opts.push('-gnatdt');
126
127 gnatmake_opts.push(
128 '-g',
129 '-fdiagnostics-color=always',
130 '-eS', // output commands to stdout, they are not errors
131 inputFilename,
132 );
133
134 if (!filters.execute && !filters.binary && !filters.binaryObject) {
135 gnatmake_opts.push(
136 '-S', // Generate ASM
137 '-c', // Compile only
138 '-fverbose-asm', // Generate verbose ASM showing variables
139 );
140
141 // produce assembly output in outputFilename

Callers 6

runCompilerMethod · 0.45
runCompilerMethod · 0.45
runCompilerMethod · 0.45
msvc-test.tsFile · 0.45

Calls 4

splitArgumentsFunction · 0.85
pushMethod · 0.80
unwrapFunction · 0.50
optionsForBackendMethod · 0.45

Tested by

no test coverage detected