diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java index 250dce53259..67c3c3c4b1e 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java @@ -44,6 +44,8 @@ import org.eclipse.cdt.managedbuilder.internal.macros.OptionContextData; import org.eclipse.cdt.managedbuilder.macros.IOptionContextData; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; import org.osgi.framework.Version; public class Option extends BuildObject implements IOption, IBuildPropertiesRestriction { @@ -776,7 +778,9 @@ public class Option extends BuildObject implements IOption, IBuildPropertiesRest } else if (valueTypeStr.equals(TYPE_TREE)) { return TREE; } else { - // TODO: This was the CDT 2.0 default - should we keep it? + ManagedBuilderCorePlugin.log(new Status(IStatus.ERROR, ManagedBuilderCorePlugin.PLUGIN_ID, + "Invalid option type=\"" + valueTypeStr + "\" specified for option " + getId() )); //$NON-NLS-1$ //$NON-NLS-2$ + // This was the CDT 2.0 default return PREPROCESSOR_SYMBOLS; } } diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/BuildEntryStorage.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/BuildEntryStorage.java index 96865ab182b..d2776b63d85 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/BuildEntryStorage.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/BuildEntryStorage.java @@ -233,29 +233,33 @@ public class BuildEntryStorage extends AbstractEntryStorage { List entryList = new ArrayList(); for (IOption opt : options) { Option option = (Option)opt; - @SuppressWarnings("unchecked") - List list = usr ? (List)option.getExactValue() : (List)option.getExactBuiltinsList(); - if (list != null) { - SupplierBasedCdtVariableSubstitutor subst = createSubstitutor(option, false); - SupplierBasedCdtVariableSubstitutor bSVarsSubst = createSubstitutor(option, true); - for (int j = 0; j < list.size(); j++) { - OptionStringValue ve = list.get(j); - OptionStringValue[] rVes = resolve(ve, option, bSVarsSubst); - if (rVes.length == 0) { - // If not resolved, add EmptyEntryInfo based off the value entry - if (emptyValuesInfos != null) { - emptyValuesInfos.add(new EmptyEntryInfo(ve, j)); - } - } else { - // If resolved, add each resolved entry as a separate UserEntryInfo - boolean isMultiple = rVes.length > 1; - List sequense = isMultiple ? new ArrayList(rVes.length) : null; - for (OptionStringValue rVe : rVes) { - ICLanguageSettingEntry entry = createUserEntry(option, rVe, flags, subst); - entryList.add(new UserEntryInfo(entry, ve, rVe, sequense)); + try { + @SuppressWarnings("unchecked") + List list = usr ? (List)option.getExactValue() : (List)option.getExactBuiltinsList(); + if (list != null) { + SupplierBasedCdtVariableSubstitutor subst = createSubstitutor(option, false); + SupplierBasedCdtVariableSubstitutor bSVarsSubst = createSubstitutor(option, true); + for (int j = 0; j < list.size(); j++) { + OptionStringValue ve = list.get(j); + OptionStringValue[] rVes = resolve(ve, option, bSVarsSubst); + if (rVes.length == 0) { + // If not resolved, add EmptyEntryInfo based off the value entry + if (emptyValuesInfos != null) { + emptyValuesInfos.add(new EmptyEntryInfo(ve, j)); + } + } else { + // If resolved, add each resolved entry as a separate UserEntryInfo + boolean isMultiple = rVes.length > 1; + List sequense = isMultiple ? new ArrayList(rVes.length) : null; + for (OptionStringValue rVe : rVes) { + ICLanguageSettingEntry entry = createUserEntry(option, rVe, flags, subst); + entryList.add(new UserEntryInfo(entry, ve, rVe, sequense)); + } } } } + } catch (Exception e) { + ManagedBuilderCorePlugin.log(e); } }